Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A SYSTEM, COMPUTING DEVICE AND APPLICATION SERVER FOR VOTING
Document Type and Number:
WIPO Patent Application WO/2014/066956
Kind Code:
A1
Abstract:
A system for verifying a voter identity in an electronic voting system, the system comprising a data network, a server in communication with the data network, the server comprising a database adapted for storing voter identification data representing identification information of at least one voter; a verifier computing device in communication with the data network and in operable communication with the server; and a voter computing device in communication with the data network and in operable communication with the server; wherein, in use the voter computing device is adapted to receive voter identification data and adapted to send, via the data network, the voter identification data to the server, the server is adapted to store the voter identification data in the database and the verifier computing device is adapted to send, via the data network, successful verification data representing the voter having been successfully verified to the server.

Inventors:
BUTLER KYLE (AU)
Application Number:
PCT/AU2013/001277
Publication Date:
May 08, 2014
Filing Date:
November 04, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BUTLER KYLE (AU)
International Classes:
G06Q50/26; G06Q90/00
Foreign References:
US20110053559A12011-03-03
Attorney, Agent or Firm:
BAXTER IP (Queen Victoria Building, New South Wales 1230, AU)
Download PDF:
Claims:
Claims

1. A system for verifying a voter identity in an electronic voting system, the system comprising:

a data network;

a server in communication with the data network, the server comprising a database, the database being adapted for storing voter identification data representing identification information of at least one voter;

a verifier computing device in communication with the data network and in operable communication with the server; and

a voter computing device in communication with the data network and in operable communication with the server; wherein, in use:

the voter computing device is adapted to receive voter identification data, the voter identification data representing identification information of the voter;

the voter computing device is adapted to send, via the data network, the voter identification data to the server;

the server is adapted to store the voter identification data in the database; and

the verifier computing device is adapted to send, via the data network, successful verification data to the server, the successful verification data representing the voter having been successfully verified.

2. A system as claimed in claim 1, wherein the voter identification data comprises driver license data.

3. A system as claimed in claim 2, wherein the driver license data representing at least one of a driver license number, a full name, a date of birth, an address, a license expiry date and an image of the voter.

4. A system as claimed in claim 1, wherein the voter identification data comprises image data representing an image of an identification document.

5. A system as claimed in claim 1, wherein the server is further adapted to send, via the data network, key data, the key data representing information for authenticating the voter computing device.

6. A system as claimed in claim 5, wherein, in sending the authentication data, the server is adapted to send, via the network, the key data to the verifier computing device.

7. A system as claimed in claim 5, wherein, in sending the key data, the server is adapted to send, via the data network, the key data to the verifier computing device.

8. A system as claimed in claim 5, wherein, in sending the key data, the server is adapted to send, via the network, an email comprising the authentication data. 9. A system as claimed in claim 5, wherein, in sending the key data, the server is adapted to send, via the network, a short messaging service (SMS) message comprising the authentication data.

10. A system as claimed in claim 5, wherein the server is adapted to generate the key data in accordance with at least one of the voter identification data and the successful verification data.

11. A system as claimed in claim 5, wherein the server is further adapted to store, in the database, the key data in relation to the voter verification data.

12. A system as claimed in claim 5, wherein the key data comprises a password.

13. A system as claimed in claim 12, wherein the password is unique.

14. A system as claimed in claim 5, wherein, in sending the key data, the server is adapted to send, via the network, the key data to the voter computing device.

15. A system as claimed in claim 5, wherein the voter computing device is further adapted to send, via the network, unlock data to the server in accordance with the key data; and

16. A system as claimed in claim 15, wherein the server is further adapted to verify the voter computing device in accordance with the unlock data.

17. A system as claimed in claim 1, wherein the verifier computing device is further adapted to receive, via the data network voter computing device, the voter identification data for verification of the voter identification data.

18. A system as claimed in claim 1, wherein, in sending the voter identification data to the server, the voter computing device is further adapted to send, via the data network to the server, unique device identifier data, the unique device identifier data representing a unique device identifier of the voter computing device.

19. A system as claimed in claim 18, wherein, in storing the voter identification data, the server is further adapted to store, in the database, the voter identification data in relation to the unique device identifier data.

20. A system as claimed in claim 18, wherein, in sending the key data, the voter computing device is further adapted to send, via the data network to the server, the unlock data in relation to the unique device identifier data.

21. A system as claimed in claim 20, wherein, in authenticating the voter computing device, the server is further adapted to authenticate the voter computing device in accordance with the key data and the unique device identifier data.

22. A system for voting comprising:

a data network;

an application server in communication with the data network, the application server comprising a database comprising eligible voter data representing eligible voters; and at least one computing device in communication with the data network and in operable communication with the application server, wherein:

the at least one computing device is adapted to receive authentication credentials data representing authentication credentials from a voter;

the at least one computing device is adapted to send the authentication credentials data to the application server;

the application server is adapted to select, from the database, voter data in accordance with the authentication credentials data;

the application server is adapted to authenticate the at least one computing device in accordance with the authentication credentials data and the voter data;

the at least one computing device is adapted to receive vote selection data representing a vote selection from the voter;

the at least one computing device is adapted to send the vote selection data to the application server;

the application server is adapted to increment a vote count in accordance with the vote selection data; and wherein:

the application server is adapted to send, to the at least one computing device, election details data representing election details of an election; and

the election details data comprises election period data representing an election period. 23. A system as claimed in claim 22, wherein the authentication credentials data represents a username and password.

24. A system as claimed in claim 22, wherein the authentication credentials data comprises image capture data representing an image capture of an object, and wherein the application server is adapted to employ image recognition technique in accordance with the image capture data in authenticating the at least one computing device.

25. A system as claimed in claim 24, wherein the application server is adapted to calculate identification data representing an identification in accordance with the image capture data.

26. A system as claimed in claim 25, wherein the application server is adapted to:

send, to an identification database, the identification data; and

receive, from the identification database, validity data representing the validity of the identification.

27. A system as claimed in claim 22, wherein the authentication credentials data comprises location data representing a location, and wherein the application server is adapted to calculate whether the location falls within a voting region in authenticating the at least one computing device. 28. A system as claimed in claim 22, wherein the election details data further comprises election registration data representing the registration status of the voter.

29. A system as claimed in claim 22, wherein the application server is adapted to send, to the at least one computing device, candidate data representing at least one election candidate.

30. A system as claimed in claim 29, wherein the candidate data comprises image data representing an image of the at least one election candidate.

31. A system as claimed in claim 29, wherein the candidate data comprises election candidate identification data representing an identification of the at least one election candidate

32. A system as claimed in claim 31, wherein the vote selection data comprises the election candidate identification data.

33. A system as claimed in claim 22, wherein the at least one computing device is a mobile computing device.

34. A computing device for voting, the computing device comprising:

a processor for processing digital data;

a memory device for storing digital data including computer program code and being coupled to the processor;

a user interface for sending and receiving user Interface data and being coupled to the processor; and

a data interface for sending and receiving data across a data network and being coupled to the processor, wherein the processor is controlled by the computer program code to:

receive, via the user interface, authentication credentials data representing authentication credentials from a voter;

send, via the data interface, the authentication credentials data to an application server; receive, via the user interface, vote selection data representing a vote selection from the voter;

send, via the data interface, the vote selection data to the application server; and wherein: the processor is further controlled by the computer program code to receive, via the data interface, election details data representing election details of an election; and

the election details data comprises election period data representing an election period.

35. A computing device as claimed in claim 34, wherein the authentication credentials data represents a username and password.

36. A computing device as claimed in claim 34, further comprising an image capture device for capturing image data representing an image capture of an object and wherein the authentication credentials data comprises the image capture data. 37. A computing device as claimed in claim 34, further comprising a location sensing device adapted for generating location data representing a location, and wherein the authentication credentials data comprises the location data representing the location.

38. A computing device as claimed in claim 34, wherein the election details data comprises election registration data representing the registration status of the voter.

39. A computing device as claimed in claim 34, wherein the processor is further controlled by the computer program code to receive, via the date interface, candidate data representing at least one election candidate.

40. A computing device as claimed in claim 39, wherein the candidate data comprises image data representing an image of the at least one election candidate.

41. A computing device as claimed in claim 39, wherein the candidate data comprises election candidate identification data representing an identification of the at least one election candidate

42. A computing device as claimed in claim 41, wherein the vote selection data comprises the election candidate identification data.

43. A computing device as claimed in claim 34, being a mobile computing device.

44. An application server for voting, the computing device comprising:

a processor for processing digital data;

a memory device for storing digital data including computer program code and being coupled to the processor;

a database for storing digital data including eligible voter data representing eligible voters, the database being coupled to the processor;

a data interface for sending and receiving data across a data network and being coupled to the processor, wherein the processor is controlled by the computer program code to:

receive, via the data interface, authentication credentials data from at least one computing device,

select, from the database, voter data in accordance with the authentication credentials data; authenticate the at least one computing device in accordance with the authentication credentials data and the voter data;

receive, via the data interface, vote selection data representing a vote selection from the voter;

increment a vote count in accordance with the vote selection data; and wherein:

the processor is further controlled by the computer program code to send, via the date interface, election details data representing election details of an election to the at least one computing device; and

the election details data comprises election period data representing an election period. 45. An application server as claimed in claim 44, wherein the authentication credentials data represents a username and password.

46. An application server as claimed in claim 44, wherein the authentication credentials data comprises image capture data representing an image capture of an object, and wherein the processor is further controlled by the computer program code to employ image recognition technique in accordance with the image capture data in authenticating the at least one computing device.

47. An application server as claimed in claim 46, wherein the processor is further controlled by the computer program code to calculate identification data representing an identification in accordance with the image capture data.

48. An application server as claimed in claim 47, wherein the processor is further controlled by the computer program code to:

send, via the data interface, the identification data to an identification database; and

receive, via the data interface, validity data representing the validity of the identification from the identification database.

49. An application server as claimed in claim 44, wherein the authentication credentials data comprises location data representing a location, and wherein the processor is further controlled by the computer program code to calculate whether the location falls within a voting region in authenticating the at least one computing device.50. An application server as claimed in claim 44, wherein the election details data comprises election registration data representing the registration status of the voter.

51. An application server as claimed in claim 44, wherein the processor is further controlled by the computer program code to send, via the data interface candidate data representing at least one election candidate to the at least one computing device.

52. An application server as claimed in claim 51, wherein the candidate data comprises image data representing an image of the at least one election candidate.

53. An application server as claimed in claim 51, wherein the candidate data comprises election candidate identification data representing an identification of the at least one election candidate

54. An application server as claimed in claim 53, wherein the vote selection data comprises the election candidate identification data.

55. An application server as claimed in claim 44, wherein the at least one computing device is a mobile computing device.

Description:
A SYSTEM, COMPUTING DEVICE AND APPLICATION SERVER FOR VOTING

Field of the Invention

The present invention relates to electronic voting and in particular to a system, computing device and application server for voting. Background

Periodic voting is conducted in democratic countries around the world at municipal, provincial and national levels. So as to ensure against vote rigging, fraud and the like, such voting is normally a manual exercise wherein eligible voters attend registration stations for face-to-face identification and a manual recordal of votes. At the completion of voting, the paper votes are counted and the results tallied.

However, such a manual voting techniques are labour-intensive and expensive especially in highly populated countries such as India having 1.2 billion inhabitants.

Klein (U.S. 2011/0053559) discloses a conventional GPS location authentication method for mobile voting, which, through comparing GPS coordinate representations of postal addresses of voters with geographical locations of mobile devices from which internet votes of the voters are received, rejects the internet votes if the corresponding mobile devices are not located within a predetermined distance from the corresponding postal addresses This method has several downsides.

Firstly, since indoor GPS reception is generally poor, for the method to be practicable, the voters may have to send the internet votes to the server from outdoor. Also, in poor weather condition, this method may fail due to poor GPS reception even at outdoor.

Secondly, although location of the mobile devices may be determined by basestation triangulation techniques, the results may be significantly inaccurate relative to those obtained by means of GPS. As a result, some voters located the edge of the respective election areas may thus be unable to vote due to the inaccuracy.

Thirdly, where the voting event is open to eligible voters not located within the predetermined distance from their respective postal addresses, the conventional GPS location authentication method may unnecessarily prevent eligible voters from voting. For example, when the eligible voters are on a trip or living in another area, they may be unable to vote. As such, this method may unnecessarily limit the usefulness and convenience of the Internet. It is to be understood that, if any prior art information is referred to herein, such reference does not constitute an admission that the information forms part of the common general knowledge in the art, in Australia or any other country.

Summary The invention seeks to provide a system, computing device and application server for voting which will overcome or substantially ameliorate at least some of the deficiencies of the prior art, or to at least provide an alternative.

According to one aspect, there is provided a system for verifying a voter identity in an electronic voting system. The system comprises: a data network; a server in communication with the data network, the server comprising a database, the database being adapted for storing voter identification data representing identification information of at least one voter; a verifier computing device in communication with the data network and in operable communication with the server; and a voter computing device in communication with the data network and in operable communication with the server. In use: the voter computing device is adapted to receive voter identification data, the voter identification data representing identification information of the voter; the voter computing device is adapted to send, via the data network, the voter identification data to the server; the server is adapted to store the voter identification data in the database; and the verifier computing device is adapted to send, via the data network, successful verification data to the server, the successful verification data representing the voter having been successfully verified.

Preferably, the voter identification data comprises driver license data.

Preferably, the driver license data representing at least one of a driver license number, a full name, a date of birth, an address, a license expiry date and an image of the voter.

Preferably, the voter identification data comprises image data representing an image of an identification document.

Preferably, the server is further adapted to send, via the data network, key data, the key data representing information for authenticating the voter computing device;

Preferably, in sending the authentication data, the server is adapted to send, via the network, the key data to the verifier computing device. Preferably, in sending the key data, the server is adapted to send, via the data network, the key data to the verifier computing device. Preferably, in sending the key data, the server is adapted to send, via the network, an email comprising the authentication data.

Preferably, in sending the key data, the server is adapted to send, via the network, a short messaging service (SMS) message comprising the authentication data. Preferably, the server is adapted to generate the key data in accordance with at least one of the voter identification data and the successful verification data.

Preferably, the server is further adapted to store, in the database, the key data in relation to the voter verification data.

Preferably, the key data comprises a password. Preferably, the password is unique.

Preferably, in sending the key data, the server is adapted to send, via the network, the key data to the voter computing device.

Preferably, the voter computing device is further adapted to send, via the network, unlock data to the server in accordance with the key data; and Preferably, the server is further adapted to verify the voter computing device in accordance with the unlock data.

Preferably, the verifier computing device is further adapted to receive, via the data network voter computing device, the voter identification data for verification of the voter identification data.

Preferably, in sending the voter identification data to the server, the voter computing device is further adapted to send, via the data network to the server, unique device identifier data, the unique device identifier data representing a unique device identifier of the voter computing device.

Preferably, in storing the voter identification data, the server is further adapted to store, in the database, the voter identification data in relation to the unique device identifier data.

Preferably, in sending the key data, the voter computing device is further adapted to send, via the data network to the server, the unlock data in relation to the unique device identifier data.

Preferably, in authenticating the voter computing device, the server is further adapted to authenticate the voter computing device in accordance with the key data and the unique device identifier data.

According to another aspect, there is provided a system for voting comprising a data network; an application server in communication with the data network, the application server comprising a database comprising eligible voter data representing eligible voters; and at least one computing device in communication with the data network and in operable communication with the application server, wherein: the at least one computing device is adapted to receive authentication credentials data representing authentication credentials from a voter; the at least one computing device is adapted to send the authentication credentials data to the application server; the application server is adapted to select, from the database, voter data in accordance with the authentication credentials data; the application server is adapted to authenticate the at least one computing device in accordance with the authentication credentials data and the voter data; the at least one computing device is adapted to receive vote selection data representing a vote selection from the voter; the at least one computing device is adapted to send the vote selection data to the application server; and the application server is adapted to increment a vote count in accordance with the vote selection data.

Preferably, the authentication credentials data represents a username and password.

Preferably, the authentication credentials data comprises image capture data representing an image capture of an object, and wherein the application server is adapted to employ image recognition technique in accordance with the image capture data in authenticating the at least one computing device.

Preferably, the application server is adapted to calculate identification data representing an identification in accordance with the image capture data.

Preferably, the application server is adapted to send, to an identification database, the identification data; and receive, from the identification database, validity data representing the validity of the identification.

Preferably, the authentication credentials data comprises location data representing a location, and wherein the application server is adapted to calculate whether the location falls within a voting region in authenticating the at least one computing device. Preferably, the application server is adapted to send, to the at least one computing device, election details data representing election details of an election.

Preferably, the election details data comprises election period data representing an election period.

Preferably, the election details data comprises election registration data representing the registration status of the voter. Preferably, the application server is adapted to send, to the at least one computing device, candidate data representing at least one election candidate. Preferably, the candidate data comprises image data representing an image of the at least one election candidate.

Preferably, the candidate data comprises election candidate identification data representing an identification of the at least one election candidate Preferably, the vote selection data comprises the election candidate identification data.

Preferably, the at least one computing device is a mobile computing device.

According to another aspect, there is provided a computing device for voting, the computing device comprising a processor for processing digital data; a memory device for storing digital data including computer program code and being coupled to the processor; a user interface for sending and receiving user Interface data and being coupled to the processor; and a data interface for sending and receiving data across a data network and being coupled to the processor, wherein the processor is controlled by the computer program code to: receive, via the user interface, authentication credentials data representing authentication credentials from a voter; send, via the data interface, the authentication credentials data to an application server; receive, via the user interface, vote selection data representing a vote selection from the voter; and send, via the data interface, the vote selection data to the application server.

Preferably, the authentication credentials data represents a username and password.

Preferably, the computing device further comprises an image capture device for capturing image data representing an image capture of an object and wherein the authentication credentials data comprises the image capture data.

Preferably, the computing device further comprises a location sensing device adapted for generating location data representing a location, and wherein the authentication credentials data comprises the location data representing the location.

Preferably, the processor is further controlled by the computer program code to receive, via the data interface election details data representing election details of an election.

Preferably, the election details data comprises election period data representing an election period.

Preferably, the election details data comprises election registration data representing the registration status of the voter.

Preferably, the processor is further controlled by the computer program code to receive, via the date interface, candidate data representing at least one election candidate.

Preferably, the candidate data comprises image data representing an image of the at least one election candidate. Preferably, the candidate data comprises election candidate identification data representing an identification of the at least one election candidate

Preferably, the vote selection data comprises the election candidate identification data.

Preferably, the computing device is a mobile computing device. According to another aspect, there is provided an application server for voting, the computing device comprising a processor for processing digital data; a memory device for storing digital data including computer program code and being coupled to the processor; a database for storing digital data including eligible voter data representing eligible voters, the database being coupled to the processor; a data interface for sending and receiving data across a data network and being coupled to the processor, wherein the processor is controlled by the computer program code to receive, via the data interface, authentication credentials data from at least one computing device, select, from the database, voter data in accordance with the authentication credentials data; authenticate the at least one computing device in accordance with the authentication credentials data and the voter data; receive, via the data interface, vote selection data representing a vote selection from the voter; increment a vote count in accordance with the vote selection data.

Preferably, the authentication credentials data represents a username and password.

Preferably, the authentication credentials data comprises image capture data representing an image capture of an object, and wherein the processor is further controlled by the computer program code to employ image recognition technique in accordance with the image capture data in authenticating the at least one computing device.

Preferably, the processor is further controlled by the computer program code to calculate identification data representing an identification in accordance with the image capture data.

Preferably, the processor is further controlled by the computer program code to send, via the data interface, the identification data to an identification database; and receive, via the data interface, validity data representing the validity of the identification from the identification database.

Preferably, the authentication credentials data comprises location data representing a location, and wherein the processor is further controlled by the computer program code to calculate whether the location falls within a voting region in authenticating the at least one computing device.

Preferably, the processor is further controlled by the computer program code to send, via the date interface, election details data representing election details of an election to the at least one computing device.

Preferably, the election details data comprises election period data representing an election period. Preferably, the election details data comprises election registration data representing the registration status of the voter.

Preferably, the processor is further controlled by the computer program code to send, via the data interface candidate data representing at least one election candidate to the at least one computing device.

Preferably, the candidate data comprises image data representing an image of the at least one election candidate.

Preferably, the candidate data comprises election candidate identification data representing an identification of the at least one election candidate Preferably, the vote selection data comprises the election candidate identification data.

Preferably, the at least one computing device is a mobile computing device.

Other aspects of the invention are also disclosed.

Brief Description of the Drawings

Notwithstanding any other forms which may fall within the scope of the present invention, preferred embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings in which:

Fig. 1 shows a computing device on which the various embodiments described herein may be implemented in accordance with an embodiment of the present invention;

Fig. 2 shows a network of computing devices on which the various embodiments described herein may be implemented in accordance with an embodiment of the present invention;

Fig. 3 is a diagram showing steps of a computer implemented method for voting enumerating data interchange between an application server and a mobile communication device in recording a vote, in accordance with a preferred embodiment of the present invention;

Figs. 4 to 6 show exemplary graphical user interfaces on which the various embodiments described herein may be implemented in accordance with a preferred embodiment of the present invention;

Fig. 7 shows another network of computing devices on which the various embodiments described herein may be implemented in accordance with another embodiment of the present invention; Fig. 8 is a diagram showing steps of a computer implemented method for verifying a voter identity in an electronic voting system in accordance with a preferred embodiment of the present invention; and

Figs. 9 to 11 show exemplary graphical user interfaces on which the various embodiments described herein may be implemented in accordance with a preferred embodiment of the present invention.

Description of Embodiments

It should be noted in the following description that like or the same reference numerals in different embodiments denote the same or similar features. Computing device

Fig. 1 shows a computing device 100 on which the various embodiments described herein may be implemented. It should be noted that the computing device 100 may be configured in differing manners, such as an application server 210, a mobile communication device 220 or the like as described herein. The steps of the method of voting (described in further detail below) may be implemented as computer program code instructions executable by the computing device 100. The computer program code instructions may be divided into one or more computer program code instruction libraries, such as dynamic link libraries (DLL), wherein each of the libraries performs a one or more steps of the method. Additionally, a subset of the one or more of the libraries may perform graphical user interface tasks relating to the steps of the method.

The device 100 comprises semiconductor memory 110 comprising volatile memory such as random access memory (RAM) or read only memory (ROM). The memory 100 may comprise either RAM or ROM or a combination of RAM and ROM.

The device 100 comprises a computer program code storage medium reader 130 for reading the computer program code instructions from computer program code storage media 120. The storage media 120 may be optical media such as CD-ROM disks, magnetic media such as floppy disks and tape cassettes or flash media such as USB memory sticks.

The device further comprises I/O interface 140 for communicating with one or more peripheral devices. The I/O interface 140 may offer both serial and parallel interface connectivity. For example, the I/O interface 140 may comprise a Small Computer System Interface (SCSI), Universal Serial Bus (USB) or similar I/O interface for interfacing with the storage medium reader 130. The I/O interface 140 may also communicate with one or more human input devices (HID) 160 such as keyboards, pointing devices, joysticks and the like. The I/O interface 140 may also comprise a computer to computer interface, such as a Recommended Standard 232 (RS-232) interface, for interfacing the device 100 with one or more personal computer (PC) devices 190. The I/O interface 140 may also comprise an audio interface for communicate audio signals to one or more audio devices 1050, such as a speaker or a buzzer.

The device 100 also comprises a network interface 170 for communicating with one or more computer networks 180. The network 180 may be a wired network, such as a wired Ethernet™ network or a wireless network, such as a Bluetooth™ network or IEEE 802.11 network. The network 180 may be a local area network (LAN), such as a home or office computer network, or a wide area network (WAN), such as the Internet or private WAN.

The device 100 comprises an arithmetic logic unit or processor 1000 for performing the computer program code instructions. The processor 1000 may be a reduced instruction set computer (RISC) or complex instruction set computer (CISC) processor or the like. The device 100 further comprises a storage device 1030, such as a magnetic disk hard drive or a solid state disk drive. Computer program code instructions may be loaded into the storage device 1030 from the storage media 120 using the storage medium reader 130 or from the network 180 using network interface 170. During the bootstrap phase, an operating system and one or more software applications are loaded from the storage device 1030 into the memory 110. During the fetch-decode-execute cycle, the processor 1000 fetches computer program code instructions from memory 110, decodes the instructions into machine code, executes the instructions and stores one or more intermediate results in memory 100.

In this manner, the instructions stored in the memory 110, when retrieved and executed by the processor 1000, may configure the computing device 100 as a special-purpose machine that may perform the functions described herein. The device 100 also comprises a video interface 1010 for conveying video signals to a display device 1020, such as a liquid crystal display (LCD), cathode-ray tube (CRT) or similar display device.

The device 100 also comprises a communication bus subsystem 150 for interconnecting the various devices described above. The bus subsystem 150 may offer parallel connectivity such as Industry Standard Architecture (ISA), conventional Peripheral Component Interconnect (PCI) and the like or serial connectivity such as PCI Express (PCIe), Serial Advanced Technology Attachment (Serial ATA) and the like. Network of computing devices

Fig. 2 shows a system 200 of computing devices 100 on which the various embodiments described herein may be implemented for the purposes of receiving votes from a plurality of voters.

The system 200 comprises an application server 210 in operable communication with one or more mobile communication device is 220 across a communication network such as the Internet 230.

In one embodiment, the application server 210 takes the form of a web server serving web pages. In this manner, the web server 210 is provided with a web server application 240 for receiving requests, such as Hypertext Transfer Protocol (HTTP) and File Transfer Protocol (FTP) requests, and serving hypertext web pages or files in response. The web server application 240 may be, for example the Apache™ or the Microsoft™ IIS HTTP server. The web server 210 is also provided with a hypertext preprocessor 250 for processing one or more web page templates 260 and data from one or more databases 270 to generate hypertext web pages. The hypertext preprocessor may, for example, be the PHP: Hypertext Preprocessor (PHP) or Microsoft Asp™ hypertext preprocessor. The web server 210 is also provided with web page templates 260, such as one or more PHP or ASP files. Upon receiving a request from the web server application 240, the hypertext preprocessor 250 is operable to retrieve a web page template, from the web page templates 260, execute any dynamic content therein, including updating or loading information from the one or more databases 270, to compose a hypertext web page. The composed hypertext web page may comprise client side code, such as Javascript, for Document Object Model (DOM) manipulating, asynchronous HTTP requests and the like.

However, it should be noted that the application server 210 need not necessarily take the embodiment of a web server and may, for example, employ other communication mechanisms such as propriety data interchange for the purposes of security in the voting process.

Furthermore, in the embodiment with the application server 210 takes the form of a web server, the mobile communication devices 220 are provided with a browser application 280, such as the Mozilla Firefox™ or Microsoft Internet Explorer™ browser applications. The browser application 280 requests hypertext web pages from the web server 210 and renders the hypertext web pages on a display device 1020.

Computer implemented method for voting

Fig. 3 shows a computer implemented method 300 for voting enumerating the data interchange between the application server 210 and the mobile communication device 220 in recording a vote.

The method 300 is executed by one or more computing devices 100 and in particular one or more computing devices 100 connected across the Internet 230 as substantially shown in Fig. 2. Particularly, the method 300 shows the data interchange between the mobile communication device 220 on the application server 210. As alluded to above, the mobile communication device 220 need not necessarily be a mobile communication device and may take on embodiments of other computing devices as the case may be, such as a standalone computing devices, tablet computing devices and the like. Furthermore, the application server 210 need not necessarily be a web server and may take on other embodiments as the case may be including servers 220 adapted for communication across other network apologies and types such as a server 220 adapted for implementing a propriety communication protocol, communicate across a virtual private network and the like. Furthermore, the data network 180 need not necessarily be the Internet network 230 let alone a distributed network. For example, the data network 180 may comprise short-range networks such as a local area network. Furthermore, the network 118 need not necessarily send and received packetised data as described herein and may employ other communication protocol as the case may be.

The application server 210 comprises a database 270 comprising eligible voter data representing a plurality of voters who are eligible to vote in a particular election. The voter data may comprise differing data fields but typically comprises a voter identification such as the name, address, date of birth and the like of a voter and may further more comprise additional information such as election eligibility data representing whether the voter is eligible to vote in a particular election. Additional information may be recorded such as the age, gender and the like of the voter including the voter's current registration status, registration expiry date, date of registration and the like.

The method 300 starts at step 305 where the mobile communication device 220 is adapted to receive authentication credentials data representing authentication credentials from a voter.

Referring now to figure 4, there is shown an exemplary graphical user interface 400 implement it by the mobile communication device 220 for the purposes of receiving the authentication credentials from the voter. As is evident from the exemplary embodiments given, the authentication credentials comprise an ID number (username) and a password. In this manner, during the registration process, the voter may be provided with a secure ID number and password. For example, the voter may be required to initially attend a registration station to manually complete the registration process and received from the registration station, the ID number and password. The ID number and password may be provided to the voter by other means, such as by mail outs, or other communication mechanisms such as e-mail SMS and the like. However, in a preferred embodiment the registration process comprises identity verification procedures so as to negate the risk of an authorised supply of ID numbers and passwords. During the registration process, the voter may be required to provide various forms of identification such as a utility bill indicating an address of the voter, photo identification and the like. In one embodiment, the ID number may be a unique number already assigned to the voter, such as a driver's licence identification number, passport number, tax number or the like. In one embodiment, so as to remove the need for physical registration stations, the network 200 may be provided with authorised mobile communication devices 220 adapted for use by one or more authorised individuals, such as election officials. In this manner, each of the authorised mobile communication devices 220 may be adapted for the purposes of generating or making available the secure ID and password information to a voter. In this manner, in the registration process, the election official need only travel door-to-door, or prospective voters visit the election official, wherein the election official verifies the identity of each voter and, having confirmed the identity of each voter, operates the authorised mobile communication device 220 so as to generate a unique ID number and password for the voter.

In one embodiment, the system 200 may be adapted to store session data on the mobile communication device 220 for additional security. For example, during the registration process wherein the mobile communication device 220 is registered with the system 200, the system 200 may be adapted to store in the memory 110 of the mobile communication device 220 further unique data, such as data stored by way of a cookie where web server technology is employed. In this manner, the further unique data may be sent in addition to the ID number and password provided by the voter. In one embodiment, the unique data may be provided alternative to the ID number and password such that, for example, once having authenticated with the application server 210, the voter need not input the ID number and password again during a certain time period.

It should be noted that in certain embodiments the system 200 may be adapted for receiving alternative or additional information for the purposes of authenticating a voter. In one embodiment, the mobile communication device 220 may be adapted to direct the voter to capture image data of the voters drivers license (or other identification document such as a passport) such that the noble dedication device 200 is adapted to send the image capture data to the application server for the purposes of authentication or registration. Where the image capture data is used for the purposes of registration, the system 200 may be adapted to receive the image capture data, perform an image recognition technique to identify and identification number from the image capture data (such as a driver's licence ID number located at the Copyright of a drivers license card), and, in one embodiment, send the licence ID number to an identification database 280 for the purposes of verifying the validity of the licence ID number. Having received confirmation from the identification database 280 as to the validity of the licence

ID number, the application server 210 may be adapted to register the voter and generates a unique ID and password for the voter. In this manner, during the subsequent voting process, the voter, already having been registered with the system 200 by means of the image capture of the voters drivers license, need only input the ID number and password provided by the application server 210 for the purpose of placing a vote. The system 200 may be adapted such that the ID number and password have a certain lifespan during which the voter may vote for different elections and, after the expiry of the ID number and password, the system 200 may require the voter to complete the registration process again. Alternatively, where the image capture data is used for the purposes of authentication, the system 200 may be adapted such that the person must upload a photo of their drivers license each time the voter places a vote. This image capture data may be required by the system alternatively or additionally to the ID number and password provided to the voter.

It should be noted that other additional data over and above image capture data may be employed for similar purposes. For example, each voter may be provided with an RFID dongle adapted for use by the mobile community device 220 for the purposes of receiving RFID data from an RFID tag, such as an RFID tag provided in a "smart" passport.

In yet another embodiment, the system 200 may be adapted for the purposes of registering and or receiving votes from voters only within a certain location. For example, in the process of registering the mobile communication device 220, the mobile communication device 220 may be adapted to receive location data from a GPS unit of the mobile communication device 220 and sent the location data to the application server. In this manner, the application server 210 may be adapted to verify that the location of the mobile communication device 220 at the time of registration is within a certain radius (such as 200 m) of a known registration station before registering the mobile communication device 220. It should be noted that this location methodology may be employed also for the purposes of authenticating the voter, such as by restricting voters from voting from proximity of their known home address, known registration station or the like.

Having input the authentication credentials at step 305, at step 310 of method 300, the mobile communication device 220 is adapted to send the authentication credentials data to the application server 210. In a preferred embodiment, the mobile communication device 220 establish as a secure connection with the application server such as by way of a secure socket layer so as to prevent eavesdropping of the authenticated credentials. At step 315 of method 300, the application server 210 is adapted to select, from the database 270, voter data in accordance with the authentication credentials data. For example, the application server 210 may be adapted to select voter data in accordance with the ID number provided by the voter. In this manner, the voter data may comprise a checksum or hash (such as an MD5 hash) of the password data for the voter so as to be used for the purposes of authenticating the voter as described below.

At step 320 of method 300, the application server 210 is adapted to authenticate the mobile communication device 220 in accordance with the authentication credentials data and the voter data, such as by comparing the above-mentioned hash against the provided password. Should the authentication credentials prove incorrect the application server 210 may be adapted to send indication of such unsuccessful authentication back to the mobile communication device 220 so as to prompt the voter to correct the provided information. In certain embodiments, the system 200 may be adapted to record a number of unsuccessful authentication requests and showed a threshold number be exceeded, block the mobile communication device 220 from further attempts either permanently rental registration is completed again, or temporarily.

Having authenticated the mobile communication device 220, the application server 210 may be adapted to send data to the mobile communication device 220 for presentation so as to allow the voter to make a vote selection. Referring now to the exemplary graphical user interface 600 as substantially shown in figure 6, it is evident that the interface 600 comprises a plurality of candidate's for each of which the voter may vote. In the example given, there is shown at least two candidates A and B (with further candidates viewable by operation of the vertical scrollbar), each candidate comprising an image of the candidate and information about the candidate representation. Also shown is a voter selection button allowing the voter to vote for each candidate. It should be noted that the candidate is shown need not necessarily be people but may be parties also. Furthermore, the interface 600 may be adapted for implementing various voting types, such as a single voting selection for a preferred party, in ranking of candidate's in accordance with preference and the like.

At step 325 of method 300, the mobile communication device 220 is adapted to receive vote selection data representing a vote selection from the voter. In this regard, once the voter has made a decision, the voter activates the vote button of interface 600 adjacent the appropriate candidate.

At step 330 of method 300, the mobile communication device 220 is adapted to send the vote selection data to the application server 210.

At step 335 of method 300, the application server 210 is adapted to receive the vote selection data from the mobile communication device 220 and increments a vote count in accordance with the vote selection data. Note that in one embodiment, the candidate data provided by the application server 210 to the mobile communication device 220 may comprise a unique candidate identification for each candidate. In this manner, in receiving the vote selection data from the mobile communication device 220, the vote selection data comprises the candidate identification data for the candidate chosen by the voter. In this manner, in incrementing the vote count in accordance with the vote selection data, the application server 210 is adapted to increment the vote count in relation to a particular candidate in accordance with the candidate identification number.

In certain embodiments, once a voter has placed a vote for an election, the system 200 may be adapted to bar the voter from placing further votes, such as by providing an indication that the user has already voted for a particular election. In one embodiment, an election may run for a certain time period, during which the voter may amend the voters original vote. In this manner, the voters vote at the time of the termination of the voting period would be the vote that constitutes the voters vote.

Referring now to the exemplary graphical user Interface 500 as substantially shown in figure 5, in one embodiment, the application server 210 is adapted to send election details data to the mobile communication device 220. In the embodiment given, the election details comprises the date of the next election (or current election time period such as the time remaining in which to vote), the election details (such as a municipal or Federal election) and the users registration status.

A system for verifying voter identity

The system 200 may also be adapted for executing a method for verifying a voter (i.e. a user of the system 200) identity in a voting event, such as a presidential election.

Referring to figure 7, there is provided another preferred embodiment of the system 200. The system 200 in this embodiment may be adapted for verifying a voter identity. It is worth noting that, in this embodiment, the system 200 further comprises a verifier computing device 710 in communication with the data network 230 (e.g. the Internet) and in operable communication with the server 210. Also, in the embodiments described below, the application server 210 will be referred to as "the server 210", and the mobile communication device 220 will be referred to as "the voter computing device 220. In addition, the ID database 280 in this embodiment is adapted for storing voter identification data representing identification information of at least one voter. Such identification information may comprise, for example, names, addresses, phone numbers and images, as will become apparent below. Furthermore, although the database 280 is shown to be operably coupled to the server 210 via the data network 230, in another arrangement, the database 280 may be operably coupled to the server 210 by other means. For example, in another arrangement, the server 210 may comprise the database 280. The voter computing device 220 may be any computing device (e.g. an iPhone, a smart phone or a personal computer) through which a voter may authenticate and communicate with the server 210. The verifier computing device 710 may be any computing device (e.g. an iPhone, a smart phone and a personal computer) provided at any suitable locations (e.g. a post office or a school), for the purpose of voter identity verification. These locations will be referred to as "identity verification locations".

Specifically, turning to figure 8, the server 210, the voter computing device 220 and the verifier computing device 710 are adapted to execute a preferred embodiment of a method for verifying a voter identity. The method starts at step 805, where the voter computing device 220 receives voter identification data. Figure 9 shows an exemplary interface 900 for user (i.e. voter) input of identification information. In this embodiment, the voter identification data comprises driver license data. Specifically, as indicated by bracket 910, the driver license data may represent a driver license number, a full name, date of birth, an address, and a license expiry date. Also, the user may select an image to be sent to the server 210. In particular, the user may click an image selection button 920 to select an image file, or may click an image capture button 930 to capture an image (e.g. using a camera 1060 of the voter computing device 220, see figure 1), for sending to the server 210. The image selected or captured may be a self-portrait image of the voter, or an image of any relevant documents (e.g. a driver license document). That is, the voter identification data to be sent to the server 210 may also comprise image data representing the image. Alternatively, the exemplary interface 900 may also be adapted for attachment of electronic identification file for verification purpose.

It should be noted that other types of identification documents, which are fit for the purpose of voting, may also be used in other embodiments. Passport is an example of such documents. In step 910, the voter computing device 220 is adapted to send, via the data network 230, the voter identification data to the server 210. In particular, the voter may send the voter identification data to the server 210 by clicking a send button 940 in the exemplary interface 900. Once the user clicks the send button 940, the voter identification data representing information inputted by the user in the exemplary interface 900 is sent to the server 210 via the data network 230. Depending on applications, the voter identification data may be sent to the server 210 in various forms, such as email attachments (i.e. multipurpose internet mail extensions (MIME)), short messaging service (SMS) messages, or the likes). In step 815, the server 210 is adapted to register (e.g. record) the voter identification data in the database 280. Shown in figure 10 is an exemplary interface 1070 showing a message 1080 indicating that the voter identification data of the user has been successfully registered in the database 280. Upon successful registration of the voter identification data, the user may proceed to any location provided with the verifier computing device 710, as alluded to above.

In another embodiment where the verifier computing device 710 is a mobile computing device (e.g. an iPhone), verification of the voter identity does not have to take place at the abovementioned locations. In other words, the verifier computing device 710 may be carried to other locations (e.g. postal addresses of the voters) for the purpose of voter identity verification. This arrangement may be particularly useful where the voter may be unable to proceed to the identity verification locations. For example, some voters may be physically disabled.

During identity verification, the voter may present his or her driver's licence or the like for verification by the staff. Upon successful verification, in step 820, the staff may use the verifier computing device 710 to send, via the data network 230, successful verification data to the server 210. The successful verification data indicates the voter having been successfully verified.

In an alternative embodiment, the method may further comprise additional steps. In step 825, the server 210 is adapted to send, via the data network 230, key data representing information for authenticating the voter computing device 220 (described below). The key data is to be provided to the voter. In one arrangement, the server 210 is adapted to send, via the data network 230, the key data to the verifier computing device 710, such that, upon receipt of the key data, the staff may provide the key data to the voter. In another arrangement, the server 210 may be adapted to send the key data directly to the voter computing device 220 (described below).

Sending of the key data to the verifier computing device 710 or to the voter computing device 220 may take on several embodiments. For example, the server 210 may send an email comprising the key data in one arrangement, and may send a short messaging service (SMS) message comprising the key data in another arrangement.

Also, the server 210 may be adapted for generating the key data in accordance with at least one of the voter identification data and the successful verification data corresponding to the voter. Also, in another embodiment where the key data has already been generated and stored in the database 280, the server 210 may be configured to send the key data from the database 280.

In addition, the server 210 may be configured to store, in the database 280, the key data in relation to the corresponding voter identification data (i.e. the voter identification data of the voter for which the key data is provided). The key data may take on several embodiments. In one exemplary arrangement, the key data comprises a password, a passcode, or the like, which may be unique in the database 280. However, in a less preferred arrangement, the key data may be non-unique. That is, the key data provided for one voter may be identical to that provided for another voter. The password may comprise a combination of numbers, letters and symbols.

As alluded to above, in an alternative arrangement, the server 210 may be adapted send in the key data directly to the voter (e.g. to the voter computing device 220). This arrangement may be convenient where the identity of the voter is verified remotely from, for example, home or the like. Also, this arrangement may spare the need of the staff providing or forwarding the key data to the voter.

In step 830, the voter may send unlock data to the server 210 for authenticating with the server 210 to access various services. In particular, the voter may use the voter computing device 220 to send, via the network 230, unlock data to the server 210 in accordance with the key data. Shown in figure 11 is an exemplary interface 1100 for user input of the unlock data (marked by line 1110). In the context of voting event, once authenticated, the user may, for example, access various services pertaining to the voting event (e.g. cast a vote and view the live result).

The unlock data may, in one embodiment, be identical to the key data. However, in another embodiment, the unlock data may be obtained based on the key data. For example, the voter computing device 220 may be adapted to calculate (or compute) the unlock data based on the key data in accordance with a preconfigured algorithm. Such an algorithm may in one embodiment comprise public-private-key encryption techniques for improved security.

In step 835, the server is further adapted to verify the voter computing device 220 in accordance with the unlock data. More particularly, if the unlock data received from the voter computing device 220 corresponds to the key data provided to the voter, the unlock data is successfully verified as being sent from the voter. In the case where the unlock data received from the voter computing device 220 does not correspond to the key data provided to the voter, the server 210 is adapted to send an error message to the voter computing device 220, indicating the unlock data being rejected by the server 210. Therefore, it is possible to configure the system 200 such that only the voter computing device 220 of the intended voter may obtain the correct unlock data. In other words, in a situation where the key data is stolen, the likelihood of misuse is reduced.

As alluded to above, the voter may in one embodiment send an image of the identify document (e.g. a driver's license) to the verifier computing device 710 for identity verification. That is, the verifier computing device 710 may be adapted to receive, via the data network 230, the corresponding image data for verification of the voter identification data. It should be noted that the computing device by which the voter sends the unlock data may be different from the computing device by which the voter sends the voter identification data. Unique device identifier (UDID)

There may be applications where the system 200 should be adapted such that the server 210 receives the unlock data only from the voter computing device 220 from which the voter identification data is received. This may have the effect of improved security. For example, this arrangement may be reduce the likelihood of the key data belonging to a particular user being stolen for misuse.

In particular, where the voter computing device 220 comprises a unique device identifier (UDID), in sending the voter identification data, the voter computing device 220 may further be adapted to further send, via the data network 230, UDID data to the server 210. The UDID data represents the UDID of the voter computing device 220. Upon receipt of the voter identification data and the UDID data, the server 210 may be adapted to store the voter identification data in relation to the UDID data. Further, in sending the unlock data, the voter computing device 220 may further be adapted to further send, via the data network 230, the UDID data to the server 210. Upon receipt of the unlock data, the server 210 may be adapted to compare the UDID data received with the unlock data and the UDID data received with the voter identification data. The server 210 may be adapted to accept the unlock data if the comparison indicates a match in the UDID data, and to reject the unlock data if otherwise.

Interpretation

Bus

In the context of this document, the term "bus" and its derivatives, while being described in a preferred embodiment as being a communication bus subsystem for interconnecting various devices including by way of parallel connectivity such as Industry Standard Architecture (ISA), conventional Peripheral Component Interconnect (PCI) and the like or serial connectivity such as PCI Express (PCIe), Serial Advanced Technology Attachment (Serial ATA) and the like, should be construed broadly herein as any system for communicating data.

In accordance with:

As described herein, 'in accordance with' may also mean 'as a function of and is not necessarily limited to the integers specified in relation thereto. Composite items

As described herein, 'a computer implemented method' should not necessarily be inferred as being performed by a single computing device such that the steps of the method may be performed by more than one cooperating computing devices. Similarly objects as used herein such as 'web server', 'server', 'client computing device', 'computer readable medium' and the like should not necessarily be construed as being a single object, and may be implemented as a two or more objects in cooperation, such as, for example, a web server being construed as two or more web servers in a server farm cooperating to achieve a desired goal or a computer readable medium being distributed in a composite manner, such as program code being provided on a compact disk activatable by a license key downloadable from a computer network.

Database:

In the context of this document, the term "database" and its derivatives may be used to describe a single database, a set of databases, a system of databases or the like. The system of databases may comprise a set of databases wherein the set of databases may be stored on a single implementation or span across multiple implementations. The term "database" is also not limited to refer to a certain database format rather may refer to any database format. For example, database formats may include MySQL, MySQLi , XML or the like.

Wireless:

The invention may be embodied using devices conforming to other network standards and for other applications, including, for example other WLAN standards and other wireless standards. Applications that can be accommodated include IEEE 802.11 wireless LANs and links, and wireless Ethernet.

In the context of this document, the term "wireless" and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated electromagnetic radiation through a non-solid medium. The term does not imply that the associated devices do not contain any wires, although in some embodiments they might not. In the context of this document, the term "wired" and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated electromagnetic radiation through a solid medium. The term does not imply that the associated devices are coupled by electrically conductive wires. Processes:

Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as "processing", "computing", "calculating", "determining", "analysing" or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities into other data similarly represented as physical quantities.

Processor:

In a similar manner, the term "processor" may refer to any device or portion of a device that processes electronic data, e.g., from registers and/or memory to transform that electronic data into other electronic data that, e.g., may be stored in registers and/or memory. A "computer" or a "computing device" or a "computing machine" or a "computing platform" may include one or more processors.

The methodologies described herein are, in one embodiment, performable by one or more processors that accept computer-readable (also called machine-readable) code containing a set of instructions that when executed by one or more of the processors carry out at least one of the methods described herein. Any processor capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken are included. Thus, one example is a typical processing system that includes one or more processors. The processing system further may include a memory subsystem including main RAM and/or a static RAM, and/or ROM.

Computer-Readable Medium:

Furthermore, a computer-readable carrier medium may form, or be included in a computer program product. A computer program product can be stored on a computer usable carrier medium, the computer program product comprising a computer readable program means for causing a processor to perform a method as described herein.

Networked or Multiple Processors:

In alternative embodiments, the one or more processors operate as a standalone device or may be connected, e.g., networked to other processor(s), in a networked deployment, the one or more processors may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer or distributed network environment. The one or more processors may form a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Note that while some diagram(s) only show(s) a single processor and a single memory that carries the computer-readable code, those in the art will understand that many of the components described above are included, but not explicitly shown or described in order not to obscure the inventive aspect. For example, while only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set

(or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

Additional Embodiments:

Thus, one embodiment of each of the methods described herein is in the form of a computer- readable carrier medium carrying a set of instructions, e.g., a computer program that are for execution on one or more processors. Thus, as will be appreciated by those skilled in the art, embodiments of the present invention may be embodied as a method, an apparatus such as a special purpose apparatus, an apparatus such as a data processing system, or a computer-readable carrier medium. The computer-readable carrier medium carries computer readable code including a set of instructions that when executed on one or more processors cause a processor or processors to implement a method. Accordingly, aspects of the present invention may take the form of a method, an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of carrier medium (e.g., a computer program product on a computer-readable storage medium) carrying computer-readable program code embodied in the medium.

Carrier Medium:

The software may further be transmitted or received over a network via a network interface device. While the carrier medium is shown in an example embodiment to be a single medium, the term "carrier medium" should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term "carrier medium" shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by one or more of the processors and that cause the one or more processors to perform any one or more of the methodologies of the present invention. A carrier medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media.

Implementation:

It will be understood that the steps of methods discussed are performed in one embodiment by an appropriate processor (or processors) of a processing (i.e., computer) system executing instructions (computer-readable code) stored in storage. It will also be understood that the invention is not limited to any particular implementation or programming technique and that the invention may be implemented using any appropriate techniques for implementing the functionality described herein. The invention is not limited to any particular programming language or operating system. Means For Carrying out a Method or Function

Furthermore, some of the embodiments are described herein as a method or combination of elements of a method that can be implemented by a processor of a processor device, computer system, or by other means of carrying out the function. Thus, a processor with the necessary instructions for carrying out such a method or element of a method forms a means for carrying out the method or element of a method. Furthermore, an element described herein of an apparatus embodiment is an example of a means for carrying out the function performed by the element for the purpose of carrying out the invention.

Connected

Similarly, it is to be noticed that the term connected, when used in the claims, should not be interpreted as being limitative to direct connections only. Thus, the scope of the expression a device A connected to a device B should not be limited to devices or systems wherein an output of device A is directly connected to an input of device B. It means that there exists a path between an output of A and an input of B which may be a path including other devices or means. "Connected" may mean that two or more elements are either in direct physical or electrical contact, or that two or more elements are not in direct contact with each other but yet still cooperate or interact with each other.

Embodiments:

Reference throughout this specification to "one embodiment" or "an embodiment" means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases "in one embodiment" or "in an embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment, but may. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner, as would be apparent to one of ordinary skill in the art from this disclosure, in one or more embodiments. Similarly it should be appreciated that in the above description of example embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the Detailed Description of Specific Embodiments are hereby expressly incorporated into this Detailed Description of Specific Embodiments, with each claim standing on its own as a separate embodiment of this invention.

Furthermore, while some embodiments described herein include some but not other features included in other embodiments, combinations of features of different embodiments are meant to be within the scope of the invention, and form different embodiments, as would be understood by those in the art. For example, in the following claims, any of the claimed embodiments can be used in any combination.

Specific Details

In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.

Terminology

In describing the preferred embodiment of the invention illustrated in the drawings, specific terminology will be resorted to for the sake of clarity. However, the invention is not intended to be limited to the specific terms so selected, and it is to be understood that each specific term includes all technical equivalents which operate in a similar manner to accomplish a similar technical purpose. Terms such as "forward", "rearward", "radially", "peripherally", "upwardly", "downwardly", and the like are used as words of convenience to provide reference points and are not to be construed as limiting terms.

Different Instances of Objects

As used herein, unless otherwise specified the use of the ordinal adjectives "first", "second", "third", etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.

Comprising and Including

In the claims which follow and in the preceding description of the invention, except where the context requires otherwise due to express language or necessary implication, the word "comprise" or variations such as "comprises" or "comprising" are used in an inclusive sense, i.e. to specify the presence of the stated features but not to preclude the presence or addition of further features in various embodiments of the invention. Any one of the terms: including or which includes or that includes as used herein is also an open term that also means including at least the elements/features that follow the term, but not excluding others. Thus, including is synonymous with and means comprising.

Scope of Invention

Thus, while there has been described what are believed to be the preferred embodiments of the invention, those skilled in the art will recognize that other and further modifications may be made thereto without departing from the spirit of the invention, and it is intended to claim all such changes and modifications as fall within the scope of the invention. For example, any formulas given above are merely representative of procedures that may be used. Functionality may be added or deleted from the block diagrams and operations may be interchanged among functional blocks. Steps may be added or deleted to methods described within the scope of the present invention.

Although the invention has been described with reference to specific examples, it will be appreciated by those skilled in the art that the invention may be embodied in many other forms.