Monday Apr 28, 2008

Not An Architecture DiAgram

 Couldn't blog for the last 2 weeks. Too busy with JavaOne 2008 stuff. Wanted to get a nice(?) picture to explain what is there in Java Card 3 Platform. I asked our Director/Manager Eran Davidov to get me a nice picture. This is what he gave me. If you don't like it it is all his fault. If you like it, all credit goes to me :).

 This side picture is not an architecture diagram. Not even close to it. It just picturizes all new features of Java Card 3 Platform.

A little explanation. At the hardware level, Java Card stands on 32 bit processor and 24K of Volatile and 128K of No-Volatile. The strengths are JDK 6 and CLDC. The interfaces to and from the card are, USB, HTTP, SSL, Sockets .... all latest protocols. The application models are Servlets/Applets/SIOs ....

Hope you got it.

Tuesday Apr 15, 2008

Java Card 3.0 - Split VM, JDK 6

Java ME developers are aware of split VM architecture. In simple terms, Data Flow Analysis happens off the device. This is done by preverifier tool. Then, the byte code verification happens on the device using the information generated by preverifier tool. This information is stored in an attribute "StackMap" for each method's "Code".

Java Card 3.0 is adapting the same style. But with a different approach.

Since JDK6, the Java compiler generates preverified class files. There is a slight difference compared to Java ME style preverification. The first difference is the Attribute name itself. Attribute name in JDK6 generated class files is "StackMapTable". And the second difference is, "StackMapTable" is in compressed format compare to "StackMap". I am not going into details. You can check latest Class file format (JSR-202) for more details.

Java Card 3.0 is trying to leverage on JDK 6, so that the learning curve will be not so bumpy/steep/perpendicular :)

Monday Apr 14, 2008

Java Card 3.0 - Editions, Application Models

Before discussing any more about Java Card 3.0, I would like to clarify few things. Java Card 3.0 doesn't mean that Java Card 2.x is no longer available. Java Card 2.x is the most successful technology in Smart Card Industry. To continue evolving Java Card 2.x, and, at the same time to move on with Next Generation Java Card, the Java Card 3.0 has two editions. This post briefly describes what they are.

For you who are not aware of Java Card Applets, I would recommend to read the book  Java Cardâ„¢ Technology for Smart Cards by Zhiqun Chen

Java Card 3.0 will be available in two editions, Classic and Connected.

Java Card 3.0 Classic Edition

This is same as Java Card 2.x, which supports only JavaCard Applets. There might be some clarifications (or) bugfixes (or) some additional API. No change in application model. It still be JavaCard Applets, that needs to be converted into CAP files, and uses APDUs for communication.

Java Card 3.0 Connected Edition

This is the one we will be talking more about :).  Connected Edition supports three application models.

  • Classic Applets - These are same as Classic Applets. The difference is, no need to convert into CAP files.
  • Extended Applets - These are like Classic Applets, but supports full Java language and some additional API.
  • Servlet Applications - Servlet applications. Web Applications (war file) with Servlets 2.4 (some API is subsetted)

Thats all in very brief. Unless it is specified, I will be blogging about Java Card 3.0 Connected Edition only. It is too lengthy to type, so I'll just be typing Java Card 3.0 :).

I hope you observed that unlike JavaCard 2.x, there is no need to convert into CAP file format in JavaCard 3.0. This is because, Java Card 3.0 can handle class files, and, the best part of it is, you can write programs utilizing all new Java Language feature like Generics, Annotations, Enums, auto-boxing, for-each loops ... everything as of JDK6. In fact, Java Card 3.0 Connected Edition requires JDK 6.

More about the language support and other technical details in later posts.

Monday Apr 07, 2008

Getting Ready for JavaOne 2008

Exactly one month to JavaOne 2008. Our team is Getting ready to demonstrate few exciting Java Card 3.0 stuff in JavaOne 2008. Don't miss it. You will get to see some cool stuff about Java Card 3.0. There will be a Contest to develop Java Card 3.0 Servlet Application(s).

If you were there at JavaOne 2007, you might have seen the Gemalto card in action. This year, more surprising things. Don't miss to visit Java Card booth.

I'll post what will be there at JavaOne 2008, later this month.

Sunday Apr 06, 2008

Servlet Container in your Pocket

You thought only Laptops and Dekstops can run Servlet container? If so, you are wrong. Java Card 3.0 Connected Edition, the Next Generation Java Card, has Servlet container in it.

What does that mean for us? It means, now we can deploy a Servlet application on the Java Card, and, access the application using regular HTTP clients, like Web Browser. Yes, after so many years, Java Card is getting more memory and processor power (More details in later posts) to run Servlet container.

Any Servlet application (No JSPs) will run on Java Card with some limitations (More about limitation in later posts).

 A typical Servlet application consists of

  • One or more Servlet classes
  • web.xml to provide meta information about this application
  • Some static HTML pages
  • Optional MANIFEST.MF file

packaged into war file. 

This application can be deployed onto Java Card 3.0 Connected Edition. Few modifications are required, because Java Card 3.0 Connected Edition supports two other Application models called Extended Applets and Classic Applets, so, it needs to know about what we are deploying.

Java Card 3.0 Specifications were released on Mar 31, 2008. Click here to get the specs.

There are lots of new things about Java Card 3.0.  Keep watching for more details about it.


Everything you want to know about Java Card


April 2008 »