`Ogilvy
`
`(10) Patent No.:
`
`(45) Date of Patent:
`
`US 7,302,683 B2
`*Nov. 27, 2007
`
`US007302683B2
`
`(54)
`
`(75)
`
`(73)
`
`METHOD AND APPARATUS FOR
`CONTROLLING COMMUNICATIONS
`
`Inventor:
`
`Ian Charles Ogilvy, Manly (AU)
`
`Assignee: CardSoft International Pty Limited,
`Manly NSW (AU)
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`This patent is subject to a terminal dis-
`claimer.
`
`(21)
`
`Appl. No.: 11/207,771
`
`(22)
`
`Filed:
`
`Aug. 22, 2005
`
`Prior Publication Data
`
`US 2006/0015646 A1
`
`Jan. 19, 2006
`
`Related U.S. Application Data
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,336,870 A
`5,479,643 A
`5,553,291 A
`5,590,281 A
`5,708,838 A
`5,745,886 A
`5,923,884 A *
`5,926,631 A
`
`8/1994 Hughes et a1.
`12/1995 Bhaskar
`9/1996 Tanaka et a1.
`12/1996 Stevens
`1/1998 Robinson
`4/1998 Rosen
`7/1999 Peyret et al.
`7/1999 McGarvey
`
`............. .. 717/167
`
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`AU
`
`2200088
`
`9/1988
`
`(Continued)
`OTHER PUBLICATIONS
`
`“Smarter Smartcards,” Hofland & Janowski, Feb. 1998, Byte Maga-
`zine 401S, pp. 7-10, Whole document.
`
`(Continued)
`
`Continuation of application No. 09/381,143, filed on
`Oct. 22, 1999, now Pat. No. 6,934,945.
`
`Primary Examiner—Phuoc Nguyen
`(74) Attorney, Agent, or Firm—Duane Morris LLP
`
`Foreign Application Priority Data
`
`(57)
`
`ABSTRACT
`
`(65)
`
`(63)
`
`(30)
`
`Mar. 14, 1997
`Mar. 16, 1998
`
`(AU)
`(wo)
`
`................................... .. PO9896
`................... .. PCT/AU98/00173
`
`(51)
`
`(52)
`
`(58)
`
`Int. Cl.
`
`(2006.01)
`G06F 17/00
`U.S. Cl.
`............................ .. 718/1; 703/23; 703/26;
`703/27; 709/200; 709/201; 709/208; 709/219;
`719/310; 719/313; 719/315; 719/316
`Field of Classification Search .................. .. 718/1;
`719/310, 313, 315, 316; 703/23, 26,27;
`709/200, 201, 208, 219
`See application file for complete search history.
`
`Disclosed is a device arranged to process messages for
`communications, comprising a virtual machine means
`including a message processor means which is arranged to
`process messages communicated to and/or to be communi-
`cated from the device, and message processor instruction
`means, arranged to provide directions for operation of the
`message processor means. Also disclosed is a method for
`operating a device arranged to process messages for com-
`munications and a method of programming a device
`arranged to process messages for communications.
`
`5 Claims, 12 Drawing Sheets
`
`/08
`
`
`
`
`P/?O7OCOL5
`MESSAGES
`
`FUNCTION SUPPORT
`FUNCTIONS
`
`/09
`
`1/0
`
`10¢
`
`
`|~on0~\O7u‘\-1
`mmmncnmi
`
`HARDWARE A5577?/1C7‘/ON
`INTERFACE
`LAYER.
`
`ALLOWS EX/57'/N6 35/05’,
`OR H1/ DRIVERS
`
`‘05’
`
`DA TA
`
`APPLICATION
`
`VM PROCESSORS
`
`H W DRIVERS
`
`
`
`/72
`
`/04-
`
`
`
`’°3
`I02
`
`/07
`
`HARDWARE
`
`
`
`/O0
`
`Petitioner First Data - Exhibit 1001 - Page 1
`
`
`
`US 7,302,683 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`5,931,917 A
`5,935,249 A
`6,021,275 A *
`6,199,160 B1
`6,308,317 B1
`6,934,945 B1*
`
`8/1999 Nguyen et al.
`8/1999 Stern etal.
`2/2000 Horwat ..................... .. 717/159
`3/2001 Echensperger et al.
`10/2001 Wilkinson et al.
`8/2005 Ogilvy ........................ .. 718/1
`
`FOREIGN PATENT DOCUMENTS
`0456249
`11/1991
`0634718
`1/1995
`
`WO
`WO
`W0
`W0
`
`9212480
`9305599
`9410628
`9727537
`
`7/1992
`3/1993
`5/1994
`771997
`
`OTHER PUBLICATIONS
`“Java and the Shift to Net-Centric Computing,” Hamilton, IEEE
`Computer, Aug. 1996, pp. 31-39, whole document especially “Java
`Viltual Machine,” sidebar p. 32.
`
`* cited by examiner
`
`Petitioner First Data - Exhibit 1001 - Page 2
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 1 of 12
`
`Us 7,302,683 B2
`
`5
`
`7
`
`CPU
`
`MEMORY
`
`3
`
`COMMUN/O4770/\/S
`/N7’ERF/-ICE
`
`COMMUN/047‘/ON5
`
`L /NES
`
`ACCOUNT
`
`/i DM/N/S TR/I TOR
`
`F/G. I
`
`Petitioner First Data - Exhibit 1001 - Page 3
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 2 of 12
`
`Us 7,302,683 B2
`
`PRO7OCOL6
`
`MESSAGES
`
`/08
`
`109
`
`FUNCTION SUPPORT W
`m
`
`/=u/vcr/o/vs
`
`107
`
`705
`
`106
`
`P R $
`
`:O1
`
`.
`
`30c
`
`DATA
`
`/iPPL/CA7‘/0/\/
`
`1/2
`
`I04-
`
`“)3
`foz
`
`VM PROCESSORS
`
`T
`
`/JRDWARE /i5S77?«4C7'/0/V
`LAYER.
`INTERFACE
`
`I07 HW DRIVERS
`HARDWAREj F/6_1
`
`ALLOWS EX/577N6 '5/05',
`OR Hy DRIVERS
`
`'05’
`
`I00
`
`Petitioner First Data - Exhibit 1001 - Page 4
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 3 of 12
`
`US 7,302,683 B2
`
`(1) EVENT (EVENT DRIVEN 5TRuCTz/RE)
`‘CARD5 w/RE’ DETECTED B)’
`HW DR“/ER5
`C TRAC/< 1 TRAC/<2 TRACKS
`Q
`CUSTN. RAN. EXPD. END.
`(2) CALL BACK 7'0 EVENT T/iBLEflNH/IL)
`LOOKS I/P5E0z/ENCE OF COMMANDS
`FOR CARDSW/PE EVENT," FROM /NDEX
`
`F/ 3a
`
`It %
`(3) Eu/vcnoxv /=RDCEssoR CALLED up To
`(x, 2, D)
`COMMENCE /MP./.EMEN77-1T/ON 0/=
`.HAN/J /D/M C/ARD,
`0C MM/I/\/D5 FDR CARD SW/PE
`QHANDLE CARD.
`U
`L:/vo ACT/D/v’
`(4) 5A VE /NSTRUC7‘/ON /MPLE/V/EN7ED
`F/G. 3b
`3
`..
`
`"
`//\/57'/QUCT/ON
`0/’ TA
`
`DATA
`
`//vs TRUCT/ON
`,,
`
`F/ 3C
`
`(5) FUNCTION RRoCEssoR CALLS up
`
`MESS/I GE PROCESSOR
`
`Q
`
`(6) FUA/CT/ON PROCESSOR CALLS up
`MESSAGE /A/.5'7'RUC7‘/ON MEANS
`FOR CARD ‘SW/PE £1/ENT
`3
`
`(7) MESSAGE RRoCEs5oR PLACES DATA
`
`FRDM CARD //vro FIELDS As DxREC7ED
`
`B)’ ME53AeE /NsrRuCr/D/v MEA/vs
`
`{E
`(6) NEXT Fl//K/Cf‘/0/\//El/EN7'
`
`F/C-3. 3
`
`Petitioner First Data - Exhibit 1001 - Page 5
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 4 of 12
`
`Us 7,302,683 B2
`
`(1) EVENT
`
`HAL DETECTS EVENT
`
`[L
`
`(2) HAL Acr/1//JTES PRO7‘OCO1_
`PROCESSOR
`
`(3) PROTOCOL /N57’/?UCT/ONS FE TCHED
`
`Ii
`
`(4) PROTOCOL PROCESSOR /MPLEMEN7:3
`
`COMMUNICATIONS PROTOCOL /N
`
`/ICCORDANCE W/TH PROTOCOL
`
`/N5 TRUC 7”/ONS
`
`ll
`
`(5) NEXT FUNCTION/EI/ENT
`
`FIG. 4
`
`Petitioner First Data - Exhibit 1001 - Page 6
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 5 of 12
`
`US 7,302,683 B2
`
`
`
`_\<QQu.-u.Q..Q2mQmxm2%m2<>E§u96$:N¥U$E.\»G$t
`
`
`
`
`
`
`
`.NV<_\>\NOTWWNEawWW:WQQKSQUNWZE
`EtaxuwfiEmbflvmEokmSumQqwo
`
`rm
`
`W.®\n\
`
`kumqmm,©Qt_m.Eqvvo
`
`E3290?
`
`Petitioner First Data - Exhibit 1001 - Page 7
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 6 of 12
`
`US 7,302,683 B2
`
`wm
`
`
`
`_>QQu.-m©-QzmQqxmZvmm.§\\<.$\Gm,vG$tNv§xECOVE
`
`
`
`
`
`
`
`.D\S.QQu.zmzgNQb.Q<\EYQ_fl
`
`
`
`
`
`
`
`Awarm:kzmsmdm.SEham
`
`_
`
`mm;
`
`
`
`9.<\vRm,mam.mxfio-mokmm28¢xmqzomumoxéwzfio-mzatw
`
`
`
`m>$E.J20$xmqioxmmoaunt@EEEQXRES..§$<Qn\©mocfill11%
`
`
`
`EboaEaswasmmX hwfigmmtQQWi
`
`QM,
`
`muwsowE.\Q
`
`mm
`
`Q.®\....\
`
`Petitioner First Data - Exhibit 1001 - Page 8
`
`
`
`
`
`
`>\Q\.:\QI_\\..303:
`_m_Qzozv
`
`88§$u.S%\:S§>$<
`m¥§U.Sn§:§>s§.<NETZLIEMQKg
`
`
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 7 of 12
`
`US 7,302,683 B2
`
`
`
`..~.\©¢C..Q\<\.¢Rw..<.3
`
`x.uzmkysuNW5G
`
`NOM2020
`
`m,O\O
`
`
`
`
`
`u...><n\© uiktsQuflaweUkmQKO
`
`EE
`
`inCAN
`
`uqzt
`
`QQZD
`
`
`
`
`
`
`
`W631isumqE3%.E qcmxtm.m.o\oi§§w.©gumdoN0mzoz@\§<m$su
`
`
`
`K.®\u.
`
`
`
`
`
`Qm§o.§\mm‘:@Q.w~\3Qmm\isUmuwtowmmm:sz@m0@E3.
`
`.§®»<o4.3K\<...§xwe9%Dwit0E305.3oxmio
`«RG90
`
`
`
`m\<E\QulOw_R..<Qm.m.m.Q>\m.bQ.tDmmwkmusm,D
`
`
`
`
`
`NQQ:$.6\smm\mDWOQNN®\<\Qm\m..w
`
`Petitioner First Data - Exhibit 1001 - Page 9
`
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 8 of 12
`
`US 7,302,683 B2
`
`E.
`
`A
`
`#
`
`
`
`muz$6.25:2«wkmommmxxwqafintms.«om.
`
`$3.3SQKKSmtQ30Fsnow
`
`
`«maxHImfikisuE25_A§ARQAQQA.wm2:moatEkotmumkAAAAAAAQAAAQM23.
`
`mS:\>\_\<w\Q.u.mu
`
`AAAAAAAAAAAAAA33.?ENE
`
`
`
`mS$<56.
`T322222cxfifizvm
`
`inCANQQZQ
`
`.
`x$.n§qoTxfizaozw5%mmwu
`
`
`xiufiqmmsumwo
`E.HI7AiA..A..Am.AI..~I¢.QD~..:\kD.~mt
`
`
`toQm...vI
`.sE2Em@TAAAAAAAat...§z\m:
`
`wavttowElla
`
`
`
`:.=sw.m..B9u.meg«Em,¥~>\v<o.:32mom
`L_2§..\.mmn\noqzmxmszzo_
`
`..~Um4Nm.@.
`
`Amgmqmqvvo_\_O.v¢u..\Lvdmum..Qmxm2m§\2$6
`
`AAQAmzwfi
`
`Petitioner First Data - Exhibit 1001 - Page 10
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 9 of 12
`
`US 7,302,683 B2
`
`$9
`
`NV
`
`B
`
`
`
`
`
`
`amooxxatmk«ooQ.SQ.§El.Ii..
`
`Gooxxfimkmqwmuwm:i.i.l.
`
`
`
`mocouozm.aoofixwmz§\mMm\r....€.~QbQkQkn\
`
`
`mfizmxpwuafi.\0uD~Qk0.«o:Q.mm2.
`
`
`
`EHm$:\Z
`
`qounzommfiumk
`
`'
`
`xwxfinhwk
`
`mmtwwmi
`
`mtxfim
`
`
`AANKMJNQvvo xmhwkgmwo.~OuQkQ%lkumqmm,©isomxfi
`
`
`kmwo.§<.§6u
`
`aim,
`
`Petitioner First Data - Exhibit 1001 - Page 11
`
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 10 of 12
`
`Us 7,302,683 B2
`
`g«EVAN EE
`
`QmE$<.uQ.uDb0&Q.
`
`
`
`Eum.umk
`
`mmwmmué
`
`m§Em.
`
`kbQmw<C
`
`4Q.uQkQ~\Q.
`.§wE<ou
`ntva,ha,0xfinmkEmOgum.mm,©Rmbqmqx.O
`
`Booxqzm
`
`dQO.VQ\wmz
`
`«ooQSQm:E
`
`m0\.VQbwmv<
`
`Petitioner First Data - Exhibit 1001 - Page 12
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 11 of 12
`
`Us 7,302,683 B2
`
`FIELD | FIELD | FIELD
`
`
`
`
`D/~77"/i REP/?ESEN7}4 no/véescxz, B/N/iR)fE7‘C)
`
`DAT/4 LOC/IT/ON /DENT/F/C/4 no/v
`
`/=0/em/17‘
`
`TEST FUNC770/V
`
`L/NE <3: COLUMN
`
`60557‘/7‘uT/ON 1./57‘
`
` F/6. /I
`
`Petitioner First Data - Exhibit 1001 - Page 13
`
`
`
`U.S. Patent
`
`Nov. 27, 2007
`
`Sheet 12 of 12
`
`Us 7,302,683 B2
`
`SEC?’/ON 5EC‘770N SECT/ON
`
` /NEZIL/NE3
`
`COMMANDS
`
`F/6. /Ea
`
`
`
`Uvgg (Na 1) Msg (Pt 2)
`
`
`
`
`
`
`{E9 64NOT//ER)_i
`
`‘ — ‘ ” -_—i
`
`3ECr/0N/
`/30
`
`/32
`
`.SEC77o/V I, L/NE3
`/30
`13/
`
`5EC770N2
`
`FIG. /2b
`
`Petitioner First Data - Exhibit 1001 - Page 14
`
`
`
`US 7,302,683 B2
`
`1
`METHOD AND APPARATUS FOR
`CONTROLLING COMMUNICATIONS
`
`This application claims the benefit of the PCT Application
`No. PCT/AU98/00173, filed on Mar. 16, 1998, which is
`hereby incorporated by reference in its entirety. The present
`invention is also related to U.S. application Ser. No. 09/381,
`143, filed on Oct. 22, 1999, now U.S. Pat. No. 6,934,945
`which is hereby by incorporated by reference in its entirety.
`
`5
`
`10
`
`FIELD OF INVENTION
`
`From a first, general aspect, the present invention relates
`to a method and apparatus for preparing and processing
`information to be sent or received via a network. A network
`
`15
`
`in this instance may be implemented as data carried either
`over communications lines and/or stored on smart cards (or
`other data carriers) and physically transported.
`From a second, more specific aspect, the present invention
`relates to a method and apparatus for controlling remote
`payment transactions, particularly, but not exclusively, for
`controlling remote payment transactions where a persons
`account is credited and/or debited from a remote location in
`
`20
`
`exchange for goods/services cash or credit, or where account
`information is accessed remotely to enable approval of a
`transaction.
`
`25
`
`BACKGROUND OF INVENTION
`
`Devices for carrying out remote payment transactions are
`well-known. These “payment terminals” include EFTPOS,
`credit card payment terminals, etc.
`The most common function of payment terminals is to
`remotely access a persons account information and either
`carry out a transaction, such as crediting or debiting the
`account, or, particularly in the case of credit card payment
`terminals, to check the users account to ensure that there are
`sulficient funds to cover a transaction. Note that although
`credit card terminals do not necessarily remotely credit or
`debit the users account (the credit/debit transaction usually
`being carried out by a separate paper bill trail) and merely
`provide the information that the users account is sufficient to
`cover the transaction, such payment
`terminals still fall
`within the ambit of the present
`invention and the term
`“transaction” as used herein includes the operation of
`remotely checking the users account to “ok” a transaction.
`A payment terminal may, for example, provide for the
`following basic operations:
`(1) Input of information which is required to enable
`access to a customers account. The information is most often
`
`read from a magnetic stripe on a credit card or bank card or
`the like, or a smart card. In addition to reading details from
`a card a personal identification number (PIN) or the like
`code may also be required.
`(2) Obtain access to the customers account. This is usually
`done by remote communication with a processing device
`holding the person’s account data, usually on bank premises
`and remote from the payment terminal. Usually, information
`on the customers account input to the payment terminal will
`need to be transmitted for verification and to enable access
`
`to the account. Also a money amount will usually need to be
`input to the payment terminal and transmitted over the
`communications line. At least some and perhaps all of the
`transmitted data may be encrypted for security purposes and
`the payment terminal is therefore, in such a case, required to
`have means (3) providing encryption.
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`
`(4) The payment terminal may need to be able to receive
`communications over the remote line from the processor
`accessing the customers account, ie. to provide an “answer”
`to the payment device regarding the user transaction. The
`answer may include information that an account debit/credit
`has taken place (eg. EFTPOS) or merely an approval that the
`customer has enough money in his account to enable a
`transaction (some credit card payment terminals). Again,
`this transmitted information may be encrypted and, if so,
`will require translation (5) in the payment terminal.
`(6) To provide an indication that the transaction request is
`approved or that a transaction has occurred, by display or
`printer, for example. Displays may also be required to
`prompt an operator or customer to input information, e.g.,
`input your PIN “Input Amount”.
`There are many different brands of payment terminal,
`utilising many different software and hardware arrange-
`ments. This gives rise to a number of problems.
`Any account acquirer (eg. bank) will generally have their
`own operating requirements as to how remote payment
`transactions will be handled. The account acquirer may
`purchase a series of payment terminals which have been
`configured by a manufacturer to the acquirer’s requirements.
`These payment terminals will then be licensed or rented or
`more often supplied at no charge to merchants (e.g., retail
`stores, garages, restaurants). Multiple account acquirers may
`require access to their customers accounts via a single
`payment terminal. That is, one particular merchant may
`operate payment terminals which provide access to custom-
`ers accounts at other account acquirers (e.g., other banks).
`Because of different requirements of dilferent acquirers for
`handling of remote payment transactions, the payment ter-
`minal must be arranged to operate to satisfy the different
`requirements.
`The tenninal owner (often a principle acquirer) will have
`the terminal appropriately arranged and programmed by the
`terminal manufacturer to satisfy the requirements of all
`account acquirers utilising the terminal. Payment terminals
`may need to contain several programs and select the appro-
`priate program depending on the card to be processed or on
`an operator selection.
`It is often the case that the terminal owner may need to
`have the operation of the payment device amended to, for
`example, enable it to operate for an additional account
`acquirer, or to satisfy changed requirements for a particular
`account acquirer. Because of the different hardware/software
`architectures available, any operational alterations generally
`the require the input of the terminal supplier or manufac-
`turer. The supplier/manufacturer will be required to repro-
`gram the terminal or amend the hardware in order to carry
`out the alterations and they will usually be the only person
`who has the appropriate knowledge. The terminal owner is
`thus tied to the particular supplier/manufacturer of the
`particular brand of payment terminal.
`It is often the case that, the terminal owner may over time
`obtain different brands from different manufacturers and for
`
`operational alterations may need to return the particular
`brand to each separate manufacturer. Over time, manufac-
`turers may go out of business, in which case the payment
`terminals made by that particular manufacturer may be
`unsupported and any alteration may be difficult to achieve,
`or at least will require the input of a skilled person having
`detailed knowledge of the programming and/or hardware of
`the redundant manufacturer’s devices.
`
`Being tied to a particular manufacturer for a particular
`brand therefore causes cost,
`time and trouble when any
`operational alterations are required. There is therefore a
`
`Petitioner First Data - Exhibit 1001 - Page 15
`
`
`
`US 7,302,683 B2
`
`3
`reluctance to carry out operational alterations, which some-
`times means that requirements of various account acquirers
`are not fully satisfied. When an operational alteration does
`have to be carried out, it is costly. If a manufacturer goes out
`of business, the terminal owner may be left with nobody to
`alter the operation of his payment terminals, or indeed
`maintain the payment terminals. The present system is costly
`and inflexible.
`
`A payment terminal device usually includes a micropro-
`cessor and a number of peripheral units (e.g., card reader,
`display, printer, communications interface, _etc) controlled
`by the processor. A payment terminal device usually com-
`prises hardware, an operating system or a BIOS and is ready
`to accept an application for that arrangement. Or the device
`may be supplied with an interpreter to accept the applica-
`tions.
`
`To alter the operation of payment terminals, a new appli-
`cation must be created. This can be time consuming, costly
`and as the programming will be different for different types
`of devices, which may have different hardware arrange-
`ments as well, and must be carried out separately for each
`different type of device (i.e., different reprogramming opera-
`tions must be carried out for different devices even where the
`
`same operational alterations may be required).
`The programming alterations are not “portable” between
`different types of devices.
`The most time critical aspects of operation of a remote
`payment terminal
`involve the building up and breaking
`down of “messages” and the formulation and operation of
`communications. By “messages” is meant, for example,
`information data which is required to be input to the device
`or communicated or displayed in order to enable carrying
`out of a remote payment transaction, and includes informa-
`tion to be communicated to the bank, e.g., customers card
`number, customers PIN, amount of transaction, etc; dis-
`played information such as “Please Input Amount”; infor-
`mation to be read from a customers magnetic stripe card or
`smart card and manipulated by the device e.g., card number,
`expiry date, etc. The operation of payment terminals is
`greatly concerned with the collection, rearrangement and
`communication of this message data to enable a remote
`payment transaction.
`In conventional devices, each time a message is con-
`structed or deconstructed, the operation of the machine will
`be handled by the application program. To change operation
`of the machine, the application must be changed. This is
`laborious, and gives rise to problems, as discussed above.
`The technique of creating a _virtual processor_ (or in this
`case microprocessor) is well known and referred to as an
`interpreter. This allows programs to operate independent of
`processor. With the newer technique of also creating virtual
`peripherals then the whole is referred to as a “virtual
`machine”.
`
`A_virtual machine_ is computer programmed to emulate
`a hypothetical computer. Different incompatible computers
`may be programmed to emulate the same hypothetical
`computer. Any computer programmed to emulate the hypo-
`thetical computer will thus be capable of executing pro-
`grams for the virtual computer. This creates a complete
`portable environment for program operations.
`A problem with virtual machines is emulation is slower
`than normal program execution. For some applications this
`performance penalty is a significant problem.
`The above problems and disadvantages which have been
`discussed specifically in relation to devices configured to
`process payment transactions also would apply to devices
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`
`configured to prepare and process any information to be sent
`or received via a network, not restricted to payment trans-
`action information.
`
`SUMMARY OF INVENTION
`
`A first aspect the present invention is directed to a device
`arranged to process messages for communications, compris-
`ing a virtual machine means including a message processor
`means which is arranged to process messages communicated
`to and/or to be communicated from the device, and message
`processor instruction means, arranged to provide directions
`for operation of the message processor means. Another
`aspect of the present invention is directed to a method for
`operating a device arranged to process messages for com-
`munications. Another aspect of the present
`invention is
`directed to a method of programming a device arranged to
`process messages for communications.
`
`DETAILED DESCRIPTION OF PREFERRED
`EMBODIMENTS
`
`From a first aspect the present invention provides a device
`arranged to process messages for communications, compris-
`ing a virtual machine means including a message processor
`means which is arranged to process messages communicated
`to and/or to be communicated from the device, and message
`processor instruction means, arranged to provide directions
`for operation of the message processor means.
`“Communicated” includes transport of data via a data
`carrier such as a smart card.
`
`The message processor means is preferably a program
`module the specific function of which is to assemble,
`disassemble and compare messages. By messages we mean
`a sequence of data comprising usually a plurality of infor-
`mation fields to be communicated.
`
`The message processor means is preferably translated into
`the native code of the microprocessor in each hardware
`device on which the virtual machine is to be implemented.
`The message processor instructions are preferably virtual
`instructions to be expressed only in the language defined by
`the message processor means and thus never requiring
`translation to any real hardware processor.
`The message processor means in at least a preferred
`embodiment provides two specific advantages over conven-
`tional arrangements
`1) Faster Operation. The processor (executing as native
`code) operates at full microprocessor speed overcoming the
`problem of slow emulation speed for message related func-
`tions.
`
`2) Faster, simpler programming. The instructions for the
`message processor preferably consist of actual message
`“descriptions”. The programmer need only describe the
`message content, all data conversion, manipulation and
`processing is automatically performed based on the message
`description. This is a more intuitive and compartmentalised
`approach which preferably leads to faster programming with
`less errors.
`
`The virtual machine preferably also includes a protocol
`processor means particularly arranged to organize commu-
`nications to and from the device, and also preferably include
`protocol processor instructions which are arranged to pro-
`vide directions for operation of the protocol processor
`means.
`
`The protocol processor means is preferably a program
`module the specific function of which is to control and select
`
`Petitioner First Data - Exhibit 1001 - Page 16
`
`
`
`US 7,302,683 B2
`
`5
`the sequence of message processor operations in relation to
`messages received and transmitted.
`The protocol processor means is preferably translated into
`the native code of the microprocessor in each hardware
`device on which the virtual machine is to be implemented.
`The protocol processor instructions are virtual instructions
`expressed only in the language defined by the protocol
`processor means and thus never requiring translation to any
`real hardware processor. The protocol processor means
`provides two specific advantages over conventional arrange-
`ments:
`
`1) Faster Operation. The processor (executing as native
`code) preferably operates at filll microprocessor speed over-
`coming the problem of slow emulation speed for protocol
`related functions.
`
`2) Faster, simpler programming. The instructions for the
`protocol engine preferably consist of an actual diagram of
`the message flow. To change message flow or sequence, the
`programmer can modify an intuitive diagram, all multipro-
`cessing and other complications are handled automatically.
`This more intuitive and compartmentalised approach leads
`to faster programming with less errors.
`In a preferred embodiment, therefore, a device in accor-
`dance with the present invention includes a virtual machine
`including virtual processors which are specifically arranged
`to control message construction, deconstruction, comparison
`and to control the communication of information, both for
`reception from a network and transmission to a network.
`These operations can therefore be carried out at speed,
`overcoming the problems with known virtual machines and
`interpreters, which tend to operate slower than convention-
`ally programmed devices. The virtual machine therefore
`lends itself particularly to applications relating to commu-
`nications, such as payment
`terminal devices and other
`devices in which message processing and communication
`comprise a significant proportion of the operation of the
`device. In payment terminals, for example, a payment ter-
`minal
`including a virtual machine having the message
`processor means and protocol processor means can operate
`satisfactorily speedwise. The virtual machine can be imple-
`mented on any hardware, BIOS/OS arrangement and there-
`fore facilitates portability of programs.
`Implementation of such a virtual machine on payment
`terminal devices of different brands enables operation of the
`payment terminal devices or brands to be altered merely by
`altering application commands generic to all brands. Each
`brand is seen by the application as the same virtual machine.
`The virtual machine preferably also includes a function
`processor means arranged to control overall virtual machine
`action in response to operator or other external events, and
`also preferably includes function processor instructions
`which are arranged to provide directions for operation of the
`function processor means.
`The function processor means is preferably a program
`module the specific function of which is to control and select
`general operations of the device not specially controlled by
`the message and protocol processor means.
`The function processor means is preferably translated into
`the native code of the microprocessor in each hardware
`device on which the virtual machine is to be implemented.
`The function processor instructions are preferably virtual
`instructions to be expressed only in the language defined by
`the function processor means and thus never requiring
`translation to any real hardware processor.
`In the preferred embodiment, the “application” will there-
`fore comprise instructions for the message, protocol and
`function processor means. The instructions for the function
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`processor means may include such prior art modules as a
`function event scheduler and function selector.
`
`Although the present invention is particularly applicable
`to application in payment terminals, it is not limited to such
`applications. The invention can be applied in any device
`where advantages are likely to be achieved for the arrange-
`ment and control of communications.
`With the advent of the Internet and other extensive
`
`communications networks, it is believed that the operation
`of computers, such as PC’s, will become more and more
`oriented towards acting as “servers” and/or “browsers”. In
`other words, a major function of PC’s connected to a
`network will be to operate either as a server, providing
`information and/or programs to the network for access by
`other parties, or as a “browser” for obtaining information/
`programs available on the network and operating on them.
`It is likely, in fact, that PC’s will be asked to operate as both
`a server and a browser. This operation will not merely be
`restricted to the Internet, but for any network, even Local
`Area Networks.
`
`The applicant also believes that many other classes of
`devices may be connected to a network. For example in the
`filture a home video cassette recording machine could be
`connected to the Internet (along with other devices) allowing
`remote programming from a browser device. An example of
`the use of this would be a worker upon learning of a
`requirement to stay at the ofiice late and miss a favorite show
`could access their home VCR from the ofiice and program
`it.
`
`Telephone calls will eventually be digital and most likely
`use the Internet as the digital network. Like the VCR, this
`does not mean all phones would need a qwerty keyboard and
`color display. They will both represent other classes of
`Internet connected devices not requiring the exact same
`configuration as PC’s.
`The present invention facilitates the production of a small,
`economical device which is particularly arranged to deal
`with communications,
`to build, compare and deconstruct
`message information. Such a device is novel maybe termed
`a Specialized Network Access Computer (SNAC). The
`applicants believe that a SNAC could emerge as a class of
`device allowing data entry and control through the Internet
`where a smaller, more economical device than a conven-
`tional PC is appropriate. In a preferred embodiment, the
`device is implemented utilising a virtual machine having a
`message processor and a protocol processor as discussed
`above. In the preferred embodiment, the software of the
`device can be considered to include three layers of virtual
`machine software (the HW drive layer,
`the Hardware
`Abstraction Layer, and the Virtual Machine Processor layer)
`and a software application. All layers other than the Virtual
`Machine Processor Layers are well established by prior art.
`A payment terminal can be used substantially without alter-
`ation as the hardware component of the device. A hardware
`abstraction layer (HAL) is a set of routines providing a
`common application program interface (API) to exercise the
`operating system, BIOS or hardware drivers.
`HAL consists of routines to either (a) implement the
`filnctionality not provided by the underlying operating sys-
`tem, BIOS or hardware drivers, but needed for the common
`API, and (b) translation of parameters and adjustments of
`filnctionality required to adapted underlining OS, BIOS
`routines for the routines specified by the common API.
`Such a SNAC can be applied in many different types of
`communication application over a network.
`The present invention also facilitates the production of
`devices which incorporate a snac as a functional element of
`
`Petitioner First Data - Exhibit 1001 - Page 17
`
`
`
`US 7,302,683 B2
`
`7
`the device. Such devices could include both devices collect-
`
`ing information for transmission over a network such a pay
`telephones, particularly those equipped with smart card
`facility, or devices receiving information from a network
`such as the futuristic VCR or even washing machine.
`Preferably, message instructions and protocol instructions
`may be developed on a convenient device such as a PC or
`general purpose computer, utilising a development tool in
`accordance with another aspect of the invention.
`From a further aspect, the present invention provides a
`development tool for developing message instructions for
`providing directions for operation of a message processor
`means to be implemented in a virtual machine as discussed
`above, the development tool comprising a processing appa-
`ratus arranged to receive data input by a user to build
`message instructions for the message processor means.
`The arrangement is preferably driven by a graphical user
`interface based program which provides various screens and
`fields for the user to input data relating to message instruc-
`tions.
`
`The message instructions are preferably subsequently
`converted to code and downloaded into the device which is
`to employ them with the virtual machine. From a further
`aspect the present invention provides a development tool for
`developing protocol instructions for directing operation of a
`protocol processor means to be implemented with the virtual
`machine as discussed above, the development tool compris-
`ing processing means arranged to receive data input by a
`user to build protocol instructions.
`The arrangement
`is preferably a program which is
`arranged to build protocol instructions from the data input
`by the user. The program is preferably graphical user inter-
`face based and provides screens and fields to facilitate data
`input for the protocol instructions.
`Protocol instructions and message instructions can there-
`fore be built on a PC and downloaded to device where the
`
`virtual machine is to be implemented.
`A tool has also preferably been provided for developing
`function processor instructions, along the lines of the tool for
`the protocol processor instructions and message protocol
`instructions.
`
`Limited hardware provided by such a device as a payment
`terminal or other SNAC device does not
`lend itself to
`
`development and testing of applications programs. Although
`the finalized application must run on the hardware,
`to
`develop and test an application it is more convenient to be
`able to utilize a more user friendly device, such as a PC or
`general purpose computer.
`From a further aspect, the present invention provides a
`communications device including a virtual machine means
`including a protocol processor means arranged to organize
`communications to and fro