Java Card:
Smart cards are small plastic cards containing electronic memory and some form of microprocessor. They may be credit-card sized, such as the cards commonly used to withdraw money from bank cash machines or to gain access to restricted areas of buildings. Smaller smart cards are used within mobile phones as SIM (Subscriber Identity Module) cards, to securely identify the user of the phone. Smart cards have also been used as identity cards, to store electronic cash for use in vending machines and other payment systems and as a replacement for tickets in public transport systems.
Smart cards can be contact cards or contactless cards. Contact cards must be physically inserted into a reader - the metal contacts on the card surface allow communication between the card and any systems linked to the card reader. Contactless cards communicate using a short range radio signal and need only be brought near a reading device, without physical contact. Normally, smart cards do not contain a power source, but are powered up when connected to a card reader.
Figure: Example of a contact smart card (contacts on the right of the card)
Java Card is a technology defined by Sun Microsystems, which enables smart cards and similar devices with very limited resources to run small Java applications known as applets (but different from the standard Java applets we have seen previously). It uses a very restricted subset of the Java APIs, even more restricted than those defined for J2ME. Some of the advantages proposed by Sun for the Java Card technology are as follows.
- Java Card applets written for one type of smart card will run on any other card that uses the Java Card technology.
- The Java language and execution environment offer a high level of security.
- Several applets can coexist on the same card and new applications can be securely added to a previously issued card.
- Java Card technology complies with formal standards for smart cards.
A simple Java Card device has an 8-bit or 16-bit processor with a small amount (say,1Kb) of RAM (volatile memory) and usually a larger amount (say, 16Kb) of non-volatile memory, such as EEPROM, which does not lose its contents when the card is powered off. More powerful cards may have a 32-bit processor, and a separate cryptographic chip and memory to perform the encryption operations that are essential for security applications.
The software that runs on the card consists of:
- the card operating system;
- a special JVM - the Java Card Virtual Machine that runs the applets;
- the Java Card API - Java classes that support smart card applications;
- the applet or applets for a specific application.
The software on the card is, of course, only part of the software required for a typical application. The Java Card device need only run enough software to fulfil its role of identifying the card holder, recording access rights or whatever the application requires.
More extensive processing can be done on other systems linked to the card via the card reader, as shown in Figure.
Figure: Software running on a Java Card device
Figure shows a minimal configuration - there may be a host system local to the card reader and one or more back-end processors, perhaps at a remote site and running application servers, database servers, and so on. A typical system may also have many card reading devices at different locations. It should be possible for developers to use Java development tools to produce code right across this wide range of devices from servers to smart cards.
At the time of writing, hundreds of millions of smart cards based on Java Card technology had been deployed.
Java Assignment Help - Java Homework Help
Struggling with java programming language? Are you not finding solution for your Java Card homework and assignments? Live Java Card experts are working for students by solving their doubts & questions during their course studies and training program. We at Expertsmind.com offer Java Card homework help, java assignment help and Java Card projects help anytime from anywhere for 24x7 hours. Computer science programming assignments help making life easy for students.
Why Expertsmind for assignment help
- Higher degree holder and experienced experts network
- Punctuality and responsibility of work
- Quality solution with 100% plagiarism free answers
- Time on Delivery
- Privacy of information and details
- Excellence in solving java programming language queries in excels and word format.
- Best tutoring assistance 24x7 hours