Java Card Technology for Smart Cards Review

Review by Billy Barron, Delphi Consultants

"Java Card Technology for Smart Cards: Architecture and Programmer's Guide" (Addison-Wesley; ISBN 0-201-70329-7) by Zhiqun Chen covers the Card API. As far as I am aware this is the first book on this topic. The Java Card API is available to many more people than realize it. Every American Express Blue Card has a chip supporting this API.

The book starts by assuming that most programmers know little, if anything about how smart cards work. The knowledgable card programmer can skip the beginning of the book. However, as I have never worked with them, I found this material to be very interesting. The history, how Java works with cards, card types and other information is provided. Also, operating systems and standards are covered as well.

The book then switchs over to Java specific card information. It starts with an architectural overview. The basics of the API and applets are covered as well. The following chapter covers how objects work in the Java Card API. This is followed with how transactions work. Then yet another short chapter on exceptions. This is followed by short to the point chapters on Applets, APDUs, firewalls, cryptography, and platform security. Each are interesting and informative in their own way.

The book then shifts into a programmers guide. The first chapter of this section shows you how to develop Applets step by step. Unfortunately, it takes a high-level approach that will work with any Applet on any card. I would have liked to see the down and dirty of how to do it with a particular card.

This is followed by a chapter which talks about optimization. This is useful because some of the optimization issues are different on a card that on a regular Java VM.

Finally, the book ends with a chapter on integer data types. Appendices covering the Java Card API language subset are also present.

Being the first book on the topic, it does not do a bad job of the Card API. I think someone can read this book and learn the Java Card API well enough to get started with it. The flaw of the book is that it is pretty technical (which probably is to be expected given the topic) and may scare of those who wants a gentler introduction to the topic. Experienced low-level programmers (the most likely audience) won't be scared though and will flow with this book.

explaining the card API