WO2000029944A1 - Method and apparatus for programming computing devices - Google Patents
Method and apparatus for programming computing devices Download PDFInfo
- Publication number
- WO2000029944A1 WO2000029944A1 PCT/AU1999/001010 AU9901010W WO0029944A1 WO 2000029944 A1 WO2000029944 A1 WO 2000029944A1 AU 9901010 W AU9901010 W AU 9901010W WO 0029944 A1 WO0029944 A1 WO 0029944A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- computing device
- program
- accordance
- initialisation
- programming
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000006870 function Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 241000220225 Malus Species 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 235000021016 apples Nutrition 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 229940036310 program Drugs 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44573—Execute-in-place [XIP]
Definitions
- the present invention relates to a method and apparatus for programming computing devices, and also to computing devices when programmed. All computing devices, including PC's, Apples, portables, small devices such as mobile telephones, EFT terminals, etc., require programming in order that they can operate to provide a function.
- a program is essentially a series of instructions which instructs the computing device to operate in a certain way. The programming may also include data or require data to be input so that the instructions can be carried out.
- Small computing devices such as electronic funds transfer (EFT) terminals, mobile phones personal organisers, etc, do not have a great deal of memory space to store program instructions. ' The functionality of these devices is therefore somewhat limited. The need to provide instructions for initialisation of programs further limits the memory space which is available for functionality of such devices.
- EFT electronic funds transfer
- the present invention provides a method of programming a computing device, comprising the steps of providing a complete program for operating the device to perform a function, initialising the complete program to produce a functional program which is in a form ready to operate the device to perform the function, and loading the device with the functional program.
- the program loaded in the computing device is therefore already in an initialised form.
- any part of the complete program which is no longer necessary for operation after initialisation e.g., any code only necessary for initialisation
- any other code which may not have been part of the complete program, but which may have been necessary for initialisation is preferably not loaded into the computing device (e.g., in object programming, some "methods" are necessary to initialise a program - many of the methods are common to different programs however but are not needed afterwards) .
- a separate computing device is used to perform the initialisation, and then the functional program is loaded into the computing device, from the separate computing device.
- the computing power of this large device can therefore be used in the initialisation step (it does not rely on computing power of the small computing device) and the separate computing device may store various initialisation means (may store and run "methods" used to set up programs) separately from the complete program.
- This provides the option of being able to use big computer routines, requiring large computer power, in the initialisation phases and producing a functional program which is substantially smaller than the complete program, for loading into a device having small memory.
- Computer programs could be designed with this process in mind.
- the present invention effectively enables a large program to be run in a small device, which may be an already existing device such as an EFT terminal, so that the small device can run more complex programs and have more functionality than if using present methods of programming which require the small device to contain sufficient program to perform initialisation each time the device is set up or switched on.
- the present invention further provides a programming apparatus for programming a computing device, the programming apparatus including initialisation means for initialising a complete program to produce a functional program for operating the computing device to perform a function, the functional program being in a form ready to operate the device, and means for loading the computing device with the functional program.
- the programming apparatus may be a general purpose computer such as a PC, Apple, Main Frame, etc.
- the computing device may also be any device but is preferably a smaller computing device, such as an EFT, mobile telephone, remote control.
- the present invention yet further provides a computing device including a functional program arranged to operate the computing device to perform a function, the functional program being of a post-initialised form, having been initialised before loading into the computing device.
- the computing device may be any computing device and may be any general purpose computer.
- the computing device is a small device, by which we mean devices that are not usually considered to be general purpose computers (general purpose computers being PC's, main frames, Apples and similar devices) but are devices such as EFT terminals, mobile telephones, remote controls for other devices and other (usually dedicated) small devices.
- They may also include small computers, such as palm-top type computers.
- the device includes only code required for the post-initialised functional program and any code required for initialisation is not included in the device.
- Figure 1 is a schematic block diagram of a generalised programming apparatus for programming a computing device, and a computing device, in accordance with an embodiment of the present invention
- Figure 2 is a schematic block diagram of an embodiment of a remote payment terminal which may be programmed in accordance with an embodiment of the present invention
- Figure 3 is a schematic diagram of a control program architecture for the payment terminal of figure 2
- Figure 4 is a schematic diagram showing a structural embodiment of message instructions and description for the message processing means 105 of figure 3.
- the programming apparatus 200 may comprise a generalised computer, such as a PC, Apple, etc.
- the programming apparatus will include input means, such as a keyboard and mouse, display means, such as a VDU and processing means (not shown) .
- This apparatus is represented in the figure 1 diagram by "hardware" block 201.
- the programming apparatus will also include software represented by blocks 202 and 203.
- other software may be included in the apparatus 200, as it is a general purpose computer, but the diagram of figure 1 only shows software which is pertinent to the present invention.
- Block 204 represents a computing device, which is preferably a small computing device such as an electronic funds transfer (EFT) terminal (remote payment terminal) .
- the small computing device also includes hardware which is necessary to perform its (usually dedicated) function 205 and also software 206 for controlling the hardware 205 to perform the function. In the case of device 204 being a remote payment terminal, the function will be to deal with EFT (see later) .
- EFT electronic funds transfer
- the software 206 included in the smaller computing device will include not only code which is necessary to control the hardware 205 to perform the required function of the device, but also code and routines which are necessary to initialise the software on switch on of the device so that software is then ready to perform its function
- the software 206 is in the form of a functional program.
- This functional program is present in the device in an initialised state and no initialisation is required on switch-on. The program is already initialised. Further, this post-initialised program does not include any "excess" code or routines which would have been necessary for initialisation if it had been a conventional program.
- Functional program 206 can therefore provide greater functionality because more program can be stored in the hardware 205 memory than would have been the case if it was also necessary to store code and routines for an initialisation process.
- the apparatus 200 is arranged to produce the post-initialised functional program 206 and load it into the device 204. It does this by the following process:
- a complete program 203 including initialisation code is loaded.
- This complete program when initialised, provides the functional program 206.
- Initialisation routines (which may be in the form of methods) 202 are also included in the programming apparatus 200.
- the complete program 203 After the complete program 203 has been loaded, it is initialised in the device 200, using the initialisation routines (if any) and the computing power (which will be greater than the computing power of the smaller device 204) of the device 200.
- any "excess code" not necessary in the functional program 206 is removed and the functional program 206 is loaded in the smaller device 204.
- the smaller device 204 can therefore have greater functionality than it otherwise would have done if it needed to store complete program with initialisation code and routines.
- the programming language used may be any language, but the present invention is particularly suited to object programming, using such languages as C++ or Java.
- Figure 2 is a block diagram of a remote payment terminal device which may be programmed using the embodiment of figure 1, i.e., the terminal in figure 2 may be the device 204 of figure 1.
- Such devices operate to facilitate remote payment transactions, and a general overview of operation is as follows:
- Information is taken from an account holder's (customer) card 5 via a card reader 4.
- Transaction information is input via the keyboard 3.
- the transaction information may include a money amount.
- the display 6 may prompt the user (merchant employee, customer) to input information (e.g., it may ask a merchant employee to input an amount) and may also display information as it is input.
- the keyboard 3 may also be used by the customer to input a code for the account, such as a PIN number.
- the CPU communicates the information via communications interface 8 with an account acquirer computer.
- the account acquirer computer may carry out a transaction (e.g., deduct money from the customers account and pay the merchants account) or may provide an "authorisation" that a transaction can be carried out.
- Information that an account transaction has taken place or that the account acquirer authorises a transaction to take place is transmitted to the communications interface 8 from the account acquirer computer.
- a display 6 may be provided to indicate that the transaction has occurred or may proceed.
- Prior art payment terminal devices are generally programmed in a conventional manner. That is, programming comprises a sequential set of operating instructions
- This "sequential program” may be directly compiled onto the processor of the device so that the device is under direct program control or, as is more usual, an applications program in a conventional programming language may control operations through a BIOS/OS.
- Applicants prior patent application International Application No. PCT/AU98/00173 discloses a method of programming small computing devices such as remote payment terminals, which allows the programs to be portable between devices having different architectures, by utilising a "virtual machine” .
- the virtual machine is a computer program to emulate a hypothetical computer. Different incompatible computers may be programmed to emulate the same hypothetical computer.
- FIG. 3 is a schematic block diagram illustrating architecture of a device utilising the type of programming disclosed in PCT/AU98/00173.
- the architecture comprises the hardware 100 of the device, as illustrated and described in relation to figure 1. It also comprises the hardware drivers, known in the prior art, and including an existing BIOS/OS or hardware drivers, reference numeral 101 and also includes the Hardware Abstraction Layer Interface (HAL) 102.
- the HAL 102 and hardware drivers 101 form a layer of a virtual machine which also includes virtual machine processors 103.
- the virtual machine 101, 102, 103 is arranged to emulate a hypothetical payment terminal.
- Application 104 controls the virtual machine 101, 102, 103 which in turn controls operation of the hardware 100.
- the virtual machine 101, 102, 103 can be adapted for many different hardware 100 arrangements (i.e. many different brands of payment terminal) . Different arrangements of hardware 100 can therefore be controlled by the same application software 104.
- Hardware Abstraction Layers and hardware drivers for virtual machines are known in the prior art and fully described in various publications.
- Each peripheral of the virtual machine is defined to be able to act in some manner on a standard set of commands.
- the HAL implements the best interpretation of each command on the actual peripheral present.
- a printer is defined to implement a "feed paper ready for tear off" instruction. On differing roll paper printers this requires feeding a different number of lines, on tractor feed printers this requires feed to the next perforation.
- the virtual machine processors include a message processor 105 and a protocol processor 106, implemented in software code.
- the message processor is arranged to process messages communicated to or to be communicated from the payment terminal via the communications interface 8.
- the protocol processor is arranged to organise communications to and from the device, and to control and select the sequence of message processor operations in relation to messages received and transmitted.
- the message processor 105 and protocol processor 106 are implemented in native code of the payment terminal and therefore operate at relatively high speed. Because much of the "work" of the payment terminal is in building, comparing and deconstructing messages and processing communications, the operation of the device is relatively quick even though employing a virtual machine, 101, 102, 103.
- the virtual machine processors 103 also comprise a function processor 107 the operation of which is to control and select general operations of the device not specially controlled by the message and protocol processors 105, 106.
- the function processor is also preferably implemented in the native code of the micro-processor of the hardware 100.
- the application 104 includes protocol instructions 108, message instructions, 109, function support 110 and function instructions 111.
- the protocol instructions 108 govern operation of the protocol processor 106.
- the message instructions 109 provide directions for operation of the message processor 105.
- Function support 110 and function instructions 111 govern operation of the function processor 107.
- the application 104 and virtual machine 101, 102, 103 operate on data 112 input to the payment terminal to process it in accordance with the application 104.
- the virtual machine processes 103 are constructed using C and the application is constructed using C++ or Java.
- the virtual machine and processors are given in the above-referenced application and is not necessary for the description of the embodiment of the present invention.
- FIG. 4 is a schematic diagram illustrating the structure of the message instruction means 109 ( Figure 3) .
- the message instruction means is in fact in the form of a set of "descriptors" of the messages.
- Each message usually comprises a plurality of fields 120, and the message instruction means for each message contains a corresponding plurality of message instructions.
- One field may be the CUSTOMER NAME, for example.
- each field is associated with a number of message descriptors 121 which designate characteristics to be applied to the information in that field or to be expected of the information in that field. Operations which may be carried out on the data included in that field may also be included in the descriptors 121.
- the descriptors may include: 1. Data Location Identification. This will indicate either where the data is to be found and/or where data is to be put. The data location information is contained in a two byte field descriptor (thus having 65535 different possible values) with value ranges allocated to
- each ID is represented as an entry in a table, and each table may contain up to 256 fields.
- Data Representation i.e. Ascci, Binary, etc. This indicates what representation form the data is in and/or what it is to be converted to.
- Format This provides a description of the format that the data is in and/or is to be placed in.
- Test Function The index of a function processor set of instructions to determine if the current field is to be included or excluded at this time.
- Line & Column Relative position for use in constructing messages for display or printing. These values are used to determine the quantity of space characters, and or new line characters that are required in the buffer. 6.
- Substitution list A list of text representations to substitute for numeric values e.g., display the value "1" as "Monday” and "2" as "Wednesday".
- Each message instruction will therefore include a description of a field of message data, providing instruction for the virtual message processor means which enable it to carry out a number of tasks:
- the message processor can manipulate data in any desired way in accordance with descriptors provided by the message instructions. Messages comprising data can therefore be built, placed in locations, taken from locations, de- constructed with elements being placed in locations, etc. for subsequent operation on the data by the application. Any device which deals with significant amounts of messages in such form can therefore benefit from this arrangement.
- Each message description is labelled so that it can be identified by the application, e.g. each message description may be numerically labelled.
- the present invention therefore lends itself particularly for use with existing hardware.
- computing device which already exist which could be reprogrammed with higher functionality using the present invention. Examples are remote payment terminals, remote controls, mobile telephones, and others. Any type of device can be programmed in accordance with the present invention, but communications devices are particularly suited.
- the following program code is an example of initialisation code which can be dispensed with, m accordance with the present invention, before loading the actual operational code into a device.
- the following code creates a message having three fields.
- the following code is extraneous to actual operation.
- F ⁇ eld2 new Field (); F ⁇ eld2. type (HEX) ; F ⁇ eld2.s ⁇ ze (4) ; MessageBuffer . append (F ⁇ eld2) ;
- 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 Net-works. The applicant also believes that many other classes of devices may be connected to a network. For example in the future 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 office late and miss a favourite show could access their home VCR from the office and pro-gram 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 colour 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 and may be termed a Specialised Network Access Computer (SNAC) .
- SNAC Specialised Network Access Computer
- the device is implemented utilising a virtual machine having a message processor and a protocol processor as discussed above.
- 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.
- a payment terminal can be used substantially without alteration as the hardware component of the device.
- Such a SNAC can be applied in many different types of communication application over a network.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU15355/00A AU1535500A (en) | 1998-11-16 | 1999-11-16 | Method and apparatus for programming computing devices |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPQ167698 | 1998-11-16 | ||
AUPQ1676 | 1998-11-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2000029944A1 true WO2000029944A1 (en) | 2000-05-25 |
Family
ID=3815860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/AU1999/001010 WO2000029944A1 (en) | 1998-11-16 | 1999-11-16 | Method and apparatus for programming computing devices |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2000029944A1 (en) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4571702A (en) * | 1982-08-09 | 1986-02-18 | Hand-Held Products, Inc. | Powerless remote program reservoir |
EP0464433A2 (en) * | 1990-06-29 | 1992-01-08 | National Semiconductor Corporation | Microcontroller device having remotely programmable EPROM & method of programming |
EP0598505A2 (en) * | 1992-11-18 | 1994-05-25 | Canon Kabushiki Kaisha | Method and apparatus for loading independently executable modules in ROM |
US5467286A (en) * | 1993-11-03 | 1995-11-14 | Square D Company | Metering unit with downloadable firmware |
AU2348897A (en) * | 1996-05-20 | 1997-11-27 | Nec Corporation | Application software distributing system, application software distributing method and computer-readable medium storing application software distributing program |
WO1999003288A1 (en) * | 1997-07-10 | 1999-01-21 | Ericsson Inc. | System and method for updating a memory in an electronic device via wireless data transfer |
WO1999042924A1 (en) * | 1998-02-20 | 1999-08-26 | Intel Corporation | Automatic update of camera firmware |
-
1999
- 1999-11-16 WO PCT/AU1999/001010 patent/WO2000029944A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4571702A (en) * | 1982-08-09 | 1986-02-18 | Hand-Held Products, Inc. | Powerless remote program reservoir |
EP0464433A2 (en) * | 1990-06-29 | 1992-01-08 | National Semiconductor Corporation | Microcontroller device having remotely programmable EPROM & method of programming |
EP0598505A2 (en) * | 1992-11-18 | 1994-05-25 | Canon Kabushiki Kaisha | Method and apparatus for loading independently executable modules in ROM |
US5467286A (en) * | 1993-11-03 | 1995-11-14 | Square D Company | Metering unit with downloadable firmware |
AU2348897A (en) * | 1996-05-20 | 1997-11-27 | Nec Corporation | Application software distributing system, application software distributing method and computer-readable medium storing application software distributing program |
WO1999003288A1 (en) * | 1997-07-10 | 1999-01-21 | Ericsson Inc. | System and method for updating a memory in an electronic device via wireless data transfer |
WO1999042924A1 (en) * | 1998-02-20 | 1999-08-26 | Intel Corporation | Automatic update of camera firmware |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6557032B1 (en) | Data processing system using active tokens and method for controlling such a system | |
US7302683B2 (en) | Method and apparatus for controlling communications | |
US5276883A (en) | System and method for uniform control of local and remote applications in a data processing network | |
US5146561A (en) | Communication network data manager system | |
EP0950218B1 (en) | Method and apparatus for mobile device screen reformatting utilizing abbreviations | |
EP0478942A2 (en) | Remote control of a computer processor | |
EP0849921B1 (en) | Apparatus and method for dispatching client method calls within a server computer system | |
CA2187925C (en) | Interface device and method | |
US6662236B1 (en) | Runtime object binding in scripting | |
US6199160B1 (en) | Computer system and method for performing multiple tasks | |
KR20010086202A (en) | Application wrapper methods and systems | |
JPS5848147A (en) | Program accessing system | |
JP3399665B2 (en) | Information processing device | |
EP0490455B1 (en) | Method and apparatus for interfacing smart cards with terminals | |
US6546431B1 (en) | Data processing system and method for sharing user interface devices of a provider assistive technology application with disparate user assistive technology applications | |
US7080387B2 (en) | System and method for mediating communication between software applications | |
GB2377779A (en) | Computer apparatus for implementing a workflow with graphical representation | |
WO2000029944A1 (en) | Method and apparatus for programming computing devices | |
US5285400A (en) | Data processing system with user definable mathematical functions and a method for using same | |
JP2999516B2 (en) | Character output control method and device for terminal device | |
US5812846A (en) | Method and apparatus for passing control from a first process to a second process | |
GB2362485A (en) | Computer system that defines navigation of a software application | |
US6366262B1 (en) | Method and apparatus for supporting multiple NPT display sessions on a single address | |
JP3401516B2 (en) | Business processing device with additional menu function | |
AU6603398A (en) | Method and apparatus for controlling communications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref country code: AU Ref document number: 2000 15355 Kind code of ref document: A Format of ref document f/p: F |
|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: COMMUNICATION PURSUANT TO RULE 69 EPC (EPO FORM 1205A OF 040303) |
|
122 | Ep: pct application non-entry in european phase |